<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /><title>GHC.Tc.Solver.Monad</title><link href="linuwial.css" rel="stylesheet" type="text/css" title="Linuwial" /><link rel="stylesheet" type="text/css" href="quick-jump.css" /><link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=PT+Sans:400,400i,700" /><script src="haddock-bundle.min.js" async="async" type="text/javascript"></script><script type="text/x-mathjax-config">MathJax.Hub.Config({ tex2jax: { processClass: "mathjax", ignoreClass: ".*" } });</script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"></script></head><body><div id="package-header"><span class="caption">ghc-9.0.2: The GHC API</span><ul class="links" id="page-menu"><li><a href="src/GHC.Tc.Solver.Monad.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>Safe-Inferred</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">GHC.Tc.Solver.Monad</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Type definitions for the constraint solver</p></div></div><div id="synopsis"><details id="syn"><summary>Synopsis</summary><ul class="details-toggle" data-details-id="syn"><li class="src short"><span class="keyword">data</span> <a href="#t:WorkList">WorkList</a> = <a href="#v:WL">WL</a> {<ul class="subs"><li><a href="#v:wl_eqs">wl_eqs</a> :: [<a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a>]</li><li><a href="#v:wl_funeqs">wl_funeqs</a> :: [<a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a>]</li><li><a href="#v:wl_rest">wl_rest</a> :: [<a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a>]</li><li><a href="#v:wl_implics">wl_implics</a> :: <a href="GHC-Data-Bag.html#t:Bag" title="GHC.Data.Bag">Bag</a> <a href="GHC-Tc-Types-Constraint.html#t:Implication" title="GHC.Tc.Types.Constraint">Implication</a></li></ul>}</li><li class="src short"><a href="#v:isEmptyWorkList">isEmptyWorkList</a> :: <a href="GHC-Tc-Solver-Monad.html#t:WorkList" title="GHC.Tc.Solver.Monad">WorkList</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><a href="#v:emptyWorkList">emptyWorkList</a> :: <a href="GHC-Tc-Solver-Monad.html#t:WorkList" title="GHC.Tc.Solver.Monad">WorkList</a></li><li class="src short"><a href="#v:extendWorkListNonEq">extendWorkListNonEq</a> :: <a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:WorkList" title="GHC.Tc.Solver.Monad">WorkList</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:WorkList" title="GHC.Tc.Solver.Monad">WorkList</a></li><li class="src short"><a href="#v:extendWorkListCt">extendWorkListCt</a> :: <a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:WorkList" title="GHC.Tc.Solver.Monad">WorkList</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:WorkList" title="GHC.Tc.Solver.Monad">WorkList</a></li><li class="src short"><a href="#v:extendWorkListCts">extendWorkListCts</a> :: [<a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a>] -&gt; <a href="GHC-Tc-Solver-Monad.html#t:WorkList" title="GHC.Tc.Solver.Monad">WorkList</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:WorkList" title="GHC.Tc.Solver.Monad">WorkList</a></li><li class="src short"><a href="#v:extendWorkListEq">extendWorkListEq</a> :: <a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:WorkList" title="GHC.Tc.Solver.Monad">WorkList</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:WorkList" title="GHC.Tc.Solver.Monad">WorkList</a></li><li class="src short"><a href="#v:extendWorkListFunEq">extendWorkListFunEq</a> :: <a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:WorkList" title="GHC.Tc.Solver.Monad">WorkList</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:WorkList" title="GHC.Tc.Solver.Monad">WorkList</a></li><li class="src short"><a href="#v:appendWorkList">appendWorkList</a> :: <a href="GHC-Tc-Solver-Monad.html#t:WorkList" title="GHC.Tc.Solver.Monad">WorkList</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:WorkList" title="GHC.Tc.Solver.Monad">WorkList</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:WorkList" title="GHC.Tc.Solver.Monad">WorkList</a></li><li class="src short"><a href="#v:selectNextWorkItem">selectNextWorkItem</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> (<a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a>)</li><li class="src short"><a href="#v:workListSize">workListSize</a> :: <a href="GHC-Tc-Solver-Monad.html#t:WorkList" title="GHC.Tc.Solver.Monad">WorkList</a> -&gt; <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li class="src short"><a href="#v:workListWantedCount">workListWantedCount</a> :: <a href="GHC-Tc-Solver-Monad.html#t:WorkList" title="GHC.Tc.Solver.Monad">WorkList</a> -&gt; <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li class="src short"><a href="#v:getWorkList">getWorkList</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Solver-Monad.html#t:WorkList" title="GHC.Tc.Solver.Monad">WorkList</a></li><li class="src short"><a href="#v:updWorkListTcS">updWorkListTcS</a> :: (<a href="GHC-Tc-Solver-Monad.html#t:WorkList" title="GHC.Tc.Solver.Monad">WorkList</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:WorkList" title="GHC.Tc.Solver.Monad">WorkList</a>) -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> ()</li><li class="src short"><a href="#v:pushLevelNoWorkList">pushLevelNoWorkList</a> :: <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> (<a href="GHC-Tc-Solver-Monad.html#t:TcLevel" title="GHC.Tc.Solver.Monad">TcLevel</a>, a)</li><li class="src short"><span class="keyword">data</span> <a href="#t:TcS">TcS</a> a</li><li class="src short"><a href="#v:runTcS">runTcS</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a -&gt; <a href="GHC-Tc-Types.html#t:TcM" title="GHC.Tc.Types">TcM</a> (a, <a href="GHC-Tc-Types-Evidence.html#t:EvBindMap" title="GHC.Tc.Types.Evidence">EvBindMap</a>)</li><li class="src short"><a href="#v:runTcSDeriveds">runTcSDeriveds</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a -&gt; <a href="GHC-Tc-Types.html#t:TcM" title="GHC.Tc.Types">TcM</a> a</li><li class="src short"><a href="#v:runTcSWithEvBinds">runTcSWithEvBinds</a> :: <a href="GHC-Tc-Types-Evidence.html#t:EvBindsVar" title="GHC.Tc.Types.Evidence">EvBindsVar</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a -&gt; <a href="GHC-Tc-Types.html#t:TcM" title="GHC.Tc.Types">TcM</a> a</li><li class="src short"><a href="#v:failTcS">failTcS</a> :: <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a</li><li class="src short"><a href="#v:warnTcS">warnTcS</a> :: <a href="GHC-Driver-Session.html#t:WarningFlag" title="GHC.Driver.Session">WarningFlag</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> ()</li><li class="src short"><a href="#v:addErrTcS">addErrTcS</a> :: <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> ()</li><li class="src short"><a href="#v:runTcSEqualities">runTcSEqualities</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a -&gt; <a href="GHC-Tc-Types.html#t:TcM" title="GHC.Tc.Types">TcM</a> a</li><li class="src short"><a href="#v:nestTcS">nestTcS</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a</li><li class="src short"><a href="#v:nestImplicTcS">nestImplicTcS</a> :: <a href="GHC-Tc-Types-Evidence.html#t:EvBindsVar" title="GHC.Tc.Types.Evidence">EvBindsVar</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcLevel" title="GHC.Tc.Solver.Monad">TcLevel</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a</li><li class="src short"><a href="#v:setEvBindsTcS">setEvBindsTcS</a> :: <a href="GHC-Tc-Types-Evidence.html#t:EvBindsVar" title="GHC.Tc.Types.Evidence">EvBindsVar</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a</li><li class="src short"><a href="#v:emitImplicationTcS">emitImplicationTcS</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcLevel" title="GHC.Tc.Solver.Monad">TcLevel</a> -&gt; <a href="GHC-Tc-Types-Origin.html#t:SkolemInfo" title="GHC.Tc.Types.Origin">SkolemInfo</a> -&gt; [<a href="GHC-Types-Var.html#t:TcTyVar" title="GHC.Types.Var">TcTyVar</a>] -&gt; [<a href="GHC-Types-Var.html#t:EvVar" title="GHC.Types.Var">EvVar</a>] -&gt; <a href="GHC-Tc-Types-Constraint.html#t:Cts" title="GHC.Tc.Types.Constraint">Cts</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Types-Evidence.html#t:TcEvBinds" title="GHC.Tc.Types.Evidence">TcEvBinds</a></li><li class="src short"><a href="#v:emitTvImplicationTcS">emitTvImplicationTcS</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcLevel" title="GHC.Tc.Solver.Monad">TcLevel</a> -&gt; <a href="GHC-Tc-Types-Origin.html#t:SkolemInfo" title="GHC.Tc.Types.Origin">SkolemInfo</a> -&gt; [<a href="GHC-Types-Var.html#t:TcTyVar" title="GHC.Types.Var">TcTyVar</a>] -&gt; <a href="GHC-Tc-Types-Constraint.html#t:Cts" title="GHC.Tc.Types.Constraint">Cts</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> ()</li><li class="src short"><a href="#v:runTcPluginTcS">runTcPluginTcS</a> :: <a href="GHC-Tc-Types.html#t:TcPluginM" title="GHC.Tc.Types">TcPluginM</a> a -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a</li><li class="src short"><a href="#v:addUsedGRE">addUsedGRE</a> :: <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> -&gt; <a href="GHC-Types-Name-Reader.html#t:GlobalRdrElt" title="GHC.Types.Name.Reader">GlobalRdrElt</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> ()</li><li class="src short"><a href="#v:addUsedGREs">addUsedGREs</a> :: [<a href="GHC-Types-Name-Reader.html#t:GlobalRdrElt" title="GHC.Types.Name.Reader">GlobalRdrElt</a>] -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> ()</li><li class="src short"><a href="#v:keepAlive">keepAlive</a> :: <a href="GHC-Types-Name.html#t:Name" title="GHC.Types.Name">Name</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> ()</li><li class="src short"><a href="#v:matchGlobalInst">matchGlobalInst</a> :: <a href="GHC-Driver-Session.html#t:DynFlags" title="GHC.Driver.Session">DynFlags</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> -&gt; <a href="GHC-Core-Class.html#t:Class" title="GHC.Core.Class">Class</a> -&gt; [<a href="GHC-Core-Type.html#t:Type" title="GHC.Core.Type">Type</a>] -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Solver-Monad.html#t:ClsInstResult" title="GHC.Tc.Solver.Monad">ClsInstResult</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:ClsInstResult">ClsInstResult</a><ul class="subs"><li>= <a href="#v:NoInstance">NoInstance</a></li><li>| <a href="#v:OneInst">OneInst</a> { <ul class="subs"><li><a href="#v:cir_new_theta">cir_new_theta</a> :: [<a href="GHC-Tc-Utils-TcType.html#t:TcPredType" title="GHC.Tc.Utils.TcType">TcPredType</a>]</li><li><a href="#v:cir_mk_ev">cir_mk_ev</a> :: [<a href="GHC-Tc-Types-Evidence.html#t:EvExpr" title="GHC.Tc.Types.Evidence">EvExpr</a>] -&gt; <a href="GHC-Tc-Types-Evidence.html#t:EvTerm" title="GHC.Tc.Types.Evidence">EvTerm</a></li><li><a href="#v:cir_what">cir_what</a> :: <a href="GHC-Tc-Instance-Class.html#t:InstanceWhat" title="GHC.Tc.Instance.Class">InstanceWhat</a></li></ul> }</li><li>| <a href="#v:NotSure">NotSure</a></li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:QCInst">QCInst</a> = <a href="#v:QCI">QCI</a> {<ul class="subs"><li><a href="#v:qci_ev">qci_ev</a> :: <a href="GHC-Tc-Types-Constraint.html#t:CtEvidence" title="GHC.Tc.Types.Constraint">CtEvidence</a></li><li><a href="#v:qci_tvs">qci_tvs</a> :: [<a href="GHC-Types-Var.html#t:TcTyVar" title="GHC.Types.Var">TcTyVar</a>]</li><li><a href="#v:qci_pred">qci_pred</a> :: <a href="GHC-Tc-Utils-TcType.html#t:TcPredType" title="GHC.Tc.Utils.TcType">TcPredType</a></li><li><a href="#v:qci_pend_sc">qci_pend_sc</a> :: <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li></ul>}</li><li class="src short"><a href="#v:panicTcS">panicTcS</a> :: <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a</li><li class="src short"><a href="#v:traceTcS">traceTcS</a> :: <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> ()</li><li class="src short"><a href="#v:traceFireTcS">traceFireTcS</a> :: <a href="GHC-Tc-Types-Constraint.html#t:CtEvidence" title="GHC.Tc.Types.Constraint">CtEvidence</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> ()</li><li class="src short"><a href="#v:bumpStepCountTcS">bumpStepCountTcS</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> ()</li><li class="src short"><a href="#v:csTraceTcS">csTraceTcS</a> :: <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> ()</li><li class="src short"><a href="#v:wrapErrTcS">wrapErrTcS</a> :: <a href="GHC-Tc-Types.html#t:TcM" title="GHC.Tc.Types">TcM</a> a -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a</li><li class="src short"><a href="#v:wrapWarnTcS">wrapWarnTcS</a> :: <a href="GHC-Tc-Types.html#t:TcM" title="GHC.Tc.Types">TcM</a> a -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a</li><li class="src short"><span class="keyword">data</span> <a href="#t:MaybeNew">MaybeNew</a><ul class="subs"><li>= <a href="#v:Fresh">Fresh</a> <a href="GHC-Tc-Types-Constraint.html#t:CtEvidence" title="GHC.Tc.Types.Constraint">CtEvidence</a></li><li>| <a href="#v:Cached">Cached</a> <a href="GHC-Tc-Types-Evidence.html#t:EvExpr" title="GHC.Tc.Types.Evidence">EvExpr</a></li></ul></li><li class="src short"><a href="#v:freshGoals">freshGoals</a> :: [<a href="GHC-Tc-Solver-Monad.html#t:MaybeNew" title="GHC.Tc.Solver.Monad">MaybeNew</a>] -&gt; [<a href="GHC-Tc-Types-Constraint.html#t:CtEvidence" title="GHC.Tc.Types.Constraint">CtEvidence</a>]</li><li class="src short"><a href="#v:isFresh">isFresh</a> :: <a href="GHC-Tc-Solver-Monad.html#t:MaybeNew" title="GHC.Tc.Solver.Monad">MaybeNew</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><a href="#v:getEvExpr">getEvExpr</a> :: <a href="GHC-Tc-Solver-Monad.html#t:MaybeNew" title="GHC.Tc.Solver.Monad">MaybeNew</a> -&gt; <a href="GHC-Tc-Types-Evidence.html#t:EvExpr" title="GHC.Tc.Types.Evidence">EvExpr</a></li><li class="src short"><a href="#v:newTcEvBinds">newTcEvBinds</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Types-Evidence.html#t:EvBindsVar" title="GHC.Tc.Types.Evidence">EvBindsVar</a></li><li class="src short"><a href="#v:newNoTcEvBinds">newNoTcEvBinds</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Types-Evidence.html#t:EvBindsVar" title="GHC.Tc.Types.Evidence">EvBindsVar</a></li><li class="src short"><a href="#v:newWantedEq">newWantedEq</a> :: <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a> -&gt; <a href="GHC-Core-TyCon.html#t:Role" title="GHC.Core.TyCon">Role</a> -&gt; <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a> -&gt; <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> (<a href="GHC-Tc-Types-Constraint.html#t:CtEvidence" title="GHC.Tc.Types.Constraint">CtEvidence</a>, <a href="GHC-Core-Coercion.html#t:Coercion" title="GHC.Core.Coercion">Coercion</a>)</li><li class="src short"><a href="#v:newWantedEq_SI">newWantedEq_SI</a> :: <a href="GHC-Core-Coercion.html#t:BlockSubstFlag" title="GHC.Core.Coercion">BlockSubstFlag</a> -&gt; <a href="GHC-Tc-Types-Constraint.html#t:ShadowInfo" title="GHC.Tc.Types.Constraint">ShadowInfo</a> -&gt; <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a> -&gt; <a href="GHC-Core-TyCon.html#t:Role" title="GHC.Core.TyCon">Role</a> -&gt; <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a> -&gt; <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> (<a href="GHC-Tc-Types-Constraint.html#t:CtEvidence" title="GHC.Tc.Types.Constraint">CtEvidence</a>, <a href="GHC-Core-Coercion.html#t:Coercion" title="GHC.Core.Coercion">Coercion</a>)</li><li class="src short"><a href="#v:emitNewWantedEq">emitNewWantedEq</a> :: <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a> -&gt; <a href="GHC-Core-TyCon.html#t:Role" title="GHC.Core.TyCon">Role</a> -&gt; <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a> -&gt; <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Core-Coercion.html#t:Coercion" title="GHC.Core.Coercion">Coercion</a></li><li class="src short"><a href="#v:newWanted">newWanted</a> :: <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a> -&gt; <a href="GHC-Core-Type.html#t:PredType" title="GHC.Core.Type">PredType</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Solver-Monad.html#t:MaybeNew" title="GHC.Tc.Solver.Monad">MaybeNew</a></li><li class="src short"><a href="#v:newWanted_SI">newWanted_SI</a> :: <a href="GHC-Tc-Types-Constraint.html#t:ShadowInfo" title="GHC.Tc.Types.Constraint">ShadowInfo</a> -&gt; <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a> -&gt; <a href="GHC-Core-Type.html#t:PredType" title="GHC.Core.Type">PredType</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Solver-Monad.html#t:MaybeNew" title="GHC.Tc.Solver.Monad">MaybeNew</a></li><li class="src short"><a href="#v:newWantedEvVar">newWantedEvVar</a> :: <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a> -&gt; <a href="GHC-Tc-Utils-TcType.html#t:TcPredType" title="GHC.Tc.Utils.TcType">TcPredType</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Solver-Monad.html#t:MaybeNew" title="GHC.Tc.Solver.Monad">MaybeNew</a></li><li class="src short"><a href="#v:newWantedNC">newWantedNC</a> :: <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a> -&gt; <a href="GHC-Core-Type.html#t:PredType" title="GHC.Core.Type">PredType</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Types-Constraint.html#t:CtEvidence" title="GHC.Tc.Types.Constraint">CtEvidence</a></li><li class="src short"><a href="#v:newWantedEvVarNC">newWantedEvVarNC</a> :: <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a> -&gt; <a href="GHC-Tc-Utils-TcType.html#t:TcPredType" title="GHC.Tc.Utils.TcType">TcPredType</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Types-Constraint.html#t:CtEvidence" title="GHC.Tc.Types.Constraint">CtEvidence</a></li><li class="src short"><a href="#v:newDerivedNC">newDerivedNC</a> :: <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a> -&gt; <a href="GHC-Tc-Utils-TcType.html#t:TcPredType" title="GHC.Tc.Utils.TcType">TcPredType</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Types-Constraint.html#t:CtEvidence" title="GHC.Tc.Types.Constraint">CtEvidence</a></li><li class="src short"><a href="#v:newBoundEvVarId">newBoundEvVarId</a> :: <a href="GHC-Tc-Utils-TcType.html#t:TcPredType" title="GHC.Tc.Utils.TcType">TcPredType</a> -&gt; <a href="GHC-Tc-Types-Evidence.html#t:EvTerm" title="GHC.Tc.Types.Evidence">EvTerm</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Types-Var.html#t:EvVar" title="GHC.Types.Var">EvVar</a></li><li class="src short"><a href="#v:unifyTyVar">unifyTyVar</a> :: <a href="GHC-Types-Var.html#t:TcTyVar" title="GHC.Types.Var">TcTyVar</a> -&gt; <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> ()</li><li class="src short"><a href="#v:unflattenFmv">unflattenFmv</a> :: <a href="GHC-Types-Var.html#t:TcTyVar" title="GHC.Types.Var">TcTyVar</a> -&gt; <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> ()</li><li class="src short"><a href="#v:reportUnifications">reportUnifications</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> (<a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a>, a)</li><li class="src short"><a href="#v:setEvBind">setEvBind</a> :: <a href="GHC-Tc-Types-Evidence.html#t:EvBind" title="GHC.Tc.Types.Evidence">EvBind</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> ()</li><li class="src short"><a href="#v:setWantedEq">setWantedEq</a> :: <a href="GHC-Tc-Types-Constraint.html#t:TcEvDest" title="GHC.Tc.Types.Constraint">TcEvDest</a> -&gt; <a href="GHC-Core-Coercion.html#t:Coercion" title="GHC.Core.Coercion">Coercion</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> ()</li><li class="src short"><a href="#v:setWantedEvTerm">setWantedEvTerm</a> :: <a href="GHC-Tc-Types-Constraint.html#t:TcEvDest" title="GHC.Tc.Types.Constraint">TcEvDest</a> -&gt; <a href="GHC-Tc-Types-Evidence.html#t:EvTerm" title="GHC.Tc.Types.Evidence">EvTerm</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> ()</li><li class="src short"><a href="#v:setEvBindIfWanted">setEvBindIfWanted</a> :: <a href="GHC-Tc-Types-Constraint.html#t:CtEvidence" title="GHC.Tc.Types.Constraint">CtEvidence</a> -&gt; <a href="GHC-Tc-Types-Evidence.html#t:EvTerm" title="GHC.Tc.Types.Evidence">EvTerm</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> ()</li><li class="src short"><a href="#v:newEvVar">newEvVar</a> :: <a href="GHC-Tc-Utils-TcType.html#t:TcPredType" title="GHC.Tc.Utils.TcType">TcPredType</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Types-Var.html#t:EvVar" title="GHC.Types.Var">EvVar</a></li><li class="src short"><a href="#v:newGivenEvVar">newGivenEvVar</a> :: <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a> -&gt; (<a href="GHC-Tc-Utils-TcType.html#t:TcPredType" title="GHC.Tc.Utils.TcType">TcPredType</a>, <a href="GHC-Tc-Types-Evidence.html#t:EvTerm" title="GHC.Tc.Types.Evidence">EvTerm</a>) -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Types-Constraint.html#t:CtEvidence" title="GHC.Tc.Types.Constraint">CtEvidence</a></li><li class="src short"><a href="#v:newGivenEvVars">newGivenEvVars</a> :: <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a> -&gt; [(<a href="GHC-Tc-Utils-TcType.html#t:TcPredType" title="GHC.Tc.Utils.TcType">TcPredType</a>, <a href="GHC-Tc-Types-Evidence.html#t:EvTerm" title="GHC.Tc.Types.Evidence">EvTerm</a>)] -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> [<a href="GHC-Tc-Types-Constraint.html#t:CtEvidence" title="GHC.Tc.Types.Constraint">CtEvidence</a>]</li><li class="src short"><a href="#v:emitNewDeriveds">emitNewDeriveds</a> :: <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a> -&gt; [<a href="GHC-Tc-Utils-TcType.html#t:TcPredType" title="GHC.Tc.Utils.TcType">TcPredType</a>] -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> ()</li><li class="src short"><a href="#v:emitNewDerivedEq">emitNewDerivedEq</a> :: <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a> -&gt; <a href="GHC-Core-TyCon.html#t:Role" title="GHC.Core.TyCon">Role</a> -&gt; <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a> -&gt; <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> ()</li><li class="src short"><a href="#v:checkReductionDepth">checkReductionDepth</a> :: <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a> -&gt; <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> ()</li><li class="src short"><a href="#v:getSolvedDicts">getSolvedDicts</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> (<a href="GHC-Tc-Solver-Monad.html#t:DictMap" title="GHC.Tc.Solver.Monad">DictMap</a> <a href="GHC-Tc-Types-Constraint.html#t:CtEvidence" title="GHC.Tc.Types.Constraint">CtEvidence</a>)</li><li class="src short"><a href="#v:setSolvedDicts">setSolvedDicts</a> :: <a href="GHC-Tc-Solver-Monad.html#t:DictMap" title="GHC.Tc.Solver.Monad">DictMap</a> <a href="GHC-Tc-Types-Constraint.html#t:CtEvidence" title="GHC.Tc.Types.Constraint">CtEvidence</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> ()</li><li class="src short"><a href="#v:getInstEnvs">getInstEnvs</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Core-InstEnv.html#t:InstEnvs" title="GHC.Core.InstEnv">InstEnvs</a></li><li class="src short"><a href="#v:getFamInstEnvs">getFamInstEnvs</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> (<a href="GHC-Core-FamInstEnv.html#t:FamInstEnv" title="GHC.Core.FamInstEnv">FamInstEnv</a>, <a href="GHC-Core-FamInstEnv.html#t:FamInstEnv" title="GHC.Core.FamInstEnv">FamInstEnv</a>)</li><li class="src short"><a href="#v:getTopEnv">getTopEnv</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Driver-Types.html#t:HscEnv" title="GHC.Driver.Types">HscEnv</a></li><li class="src short"><a href="#v:getGblEnv">getGblEnv</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Types.html#t:TcGblEnv" title="GHC.Tc.Types">TcGblEnv</a></li><li class="src short"><a href="#v:getLclEnv">getLclEnv</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Types.html#t:TcLclEnv" title="GHC.Tc.Types">TcLclEnv</a></li><li class="src short"><a href="#v:getTcEvBindsVar">getTcEvBindsVar</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Types-Evidence.html#t:EvBindsVar" title="GHC.Tc.Types.Evidence">EvBindsVar</a></li><li class="src short"><a href="#v:getTcLevel">getTcLevel</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Solver-Monad.html#t:TcLevel" title="GHC.Tc.Solver.Monad">TcLevel</a></li><li class="src short"><a href="#v:getTcEvTyCoVars">getTcEvTyCoVars</a> :: <a href="GHC-Tc-Types-Evidence.html#t:EvBindsVar" title="GHC.Tc.Types.Evidence">EvBindsVar</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Types-Var-Set.html#t:TyCoVarSet" title="GHC.Types.Var.Set">TyCoVarSet</a></li><li class="src short"><a href="#v:getTcEvBindsMap">getTcEvBindsMap</a> :: <a href="GHC-Tc-Types-Evidence.html#t:EvBindsVar" title="GHC.Tc.Types.Evidence">EvBindsVar</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Types-Evidence.html#t:EvBindMap" title="GHC.Tc.Types.Evidence">EvBindMap</a></li><li class="src short"><a href="#v:setTcEvBindsMap">setTcEvBindsMap</a> :: <a href="GHC-Tc-Types-Evidence.html#t:EvBindsVar" title="GHC.Tc.Types.Evidence">EvBindsVar</a> -&gt; <a href="GHC-Tc-Types-Evidence.html#t:EvBindMap" title="GHC.Tc.Types.Evidence">EvBindMap</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> ()</li><li class="src short"><a href="#v:tcLookupClass">tcLookupClass</a> :: <a href="GHC-Types-Name.html#t:Name" title="GHC.Types.Name">Name</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Core-Class.html#t:Class" title="GHC.Core.Class">Class</a></li><li class="src short"><a href="#v:tcLookupId">tcLookupId</a> :: <a href="GHC-Types-Name.html#t:Name" title="GHC.Types.Name">Name</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Types-Var.html#t:Id" title="GHC.Types.Var">Id</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:InertSet">InertSet</a> = <a href="#v:IS">IS</a> {<ul class="subs"><li><a href="#v:inert_cans">inert_cans</a> :: <a href="GHC-Tc-Solver-Monad.html#t:InertCans" title="GHC.Tc.Solver.Monad">InertCans</a></li><li><a href="#v:inert_fsks">inert_fsks</a> :: [(<a href="GHC-Types-Var.html#t:TcTyVar" title="GHC.Types.Var">TcTyVar</a>, <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a>)]</li><li><a href="#v:inert_flat_cache">inert_flat_cache</a> :: ExactFunEqMap (<a href="GHC-Tc-Types-Evidence.html#t:TcCoercion" title="GHC.Tc.Types.Evidence">TcCoercion</a>, <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a>, <a href="GHC-Tc-Types-Constraint.html#t:CtFlavour" title="GHC.Tc.Types.Constraint">CtFlavour</a>)</li><li><a href="#v:inert_solved_dicts">inert_solved_dicts</a> :: <a href="GHC-Tc-Solver-Monad.html#t:DictMap" title="GHC.Tc.Solver.Monad">DictMap</a> <a href="GHC-Tc-Types-Constraint.html#t:CtEvidence" title="GHC.Tc.Types.Constraint">CtEvidence</a></li></ul>}</li><li class="src short"><span class="keyword">data</span> <a href="#t:InertCans">InertCans</a> = <a href="#v:IC">IC</a> {<ul class="subs"><li><a href="#v:inert_eqs">inert_eqs</a> :: InertEqs</li><li><a href="#v:inert_funeqs">inert_funeqs</a> :: FunEqMap <a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a></li><li><a href="#v:inert_dicts">inert_dicts</a> :: <a href="GHC-Tc-Solver-Monad.html#t:DictMap" title="GHC.Tc.Solver.Monad">DictMap</a> <a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a></li><li><a href="#v:inert_insts">inert_insts</a> :: [<a href="GHC-Tc-Solver-Monad.html#t:QCInst" title="GHC.Tc.Solver.Monad">QCInst</a>]</li><li><a href="#v:inert_safehask">inert_safehask</a> :: <a href="GHC-Tc-Solver-Monad.html#t:DictMap" title="GHC.Tc.Solver.Monad">DictMap</a> <a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a></li><li><a href="#v:inert_irreds">inert_irreds</a> :: <a href="GHC-Tc-Types-Constraint.html#t:Cts" title="GHC.Tc.Types.Constraint">Cts</a></li><li><a href="#v:inert_count">inert_count</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li></ul>}</li><li class="src short"><a href="#v:updInertTcS">updInertTcS</a> :: (<a href="GHC-Tc-Solver-Monad.html#t:InertSet" title="GHC.Tc.Solver.Monad">InertSet</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:InertSet" title="GHC.Tc.Solver.Monad">InertSet</a>) -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> ()</li><li class="src short"><a href="#v:updInertCans">updInertCans</a> :: (<a href="GHC-Tc-Solver-Monad.html#t:InertCans" title="GHC.Tc.Solver.Monad">InertCans</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:InertCans" title="GHC.Tc.Solver.Monad">InertCans</a>) -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> ()</li><li class="src short"><a href="#v:updInertDicts">updInertDicts</a> :: (<a href="GHC-Tc-Solver-Monad.html#t:DictMap" title="GHC.Tc.Solver.Monad">DictMap</a> <a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:DictMap" title="GHC.Tc.Solver.Monad">DictMap</a> <a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a>) -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> ()</li><li class="src short"><a href="#v:updInertIrreds">updInertIrreds</a> :: (<a href="GHC-Tc-Types-Constraint.html#t:Cts" title="GHC.Tc.Types.Constraint">Cts</a> -&gt; <a href="GHC-Tc-Types-Constraint.html#t:Cts" title="GHC.Tc.Types.Constraint">Cts</a>) -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> ()</li><li class="src short"><a href="#v:getNoGivenEqs">getNoGivenEqs</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcLevel" title="GHC.Tc.Solver.Monad">TcLevel</a> -&gt; [<a href="GHC-Types-Var.html#t:TcTyVar" title="GHC.Types.Var">TcTyVar</a>] -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> (<a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a>, <a href="GHC-Tc-Types-Constraint.html#t:Cts" title="GHC.Tc.Types.Constraint">Cts</a>)</li><li class="src short"><a href="#v:setInertCans">setInertCans</a> :: <a href="GHC-Tc-Solver-Monad.html#t:InertCans" title="GHC.Tc.Solver.Monad">InertCans</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> ()</li><li class="src short"><a href="#v:getInertEqs">getInertEqs</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> (<a href="GHC-Types-Var-Env.html#t:DTyVarEnv" title="GHC.Types.Var.Env">DTyVarEnv</a> <a href="GHC-Tc-Solver-Monad.html#t:EqualCtList" title="GHC.Tc.Solver.Monad">EqualCtList</a>)</li><li class="src short"><a href="#v:getInertCans">getInertCans</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Solver-Monad.html#t:InertCans" title="GHC.Tc.Solver.Monad">InertCans</a></li><li class="src short"><a href="#v:getInertGivens">getInertGivens</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> [<a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a>]</li><li class="src short"><a href="#v:getInertInsols">getInertInsols</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Types-Constraint.html#t:Cts" title="GHC.Tc.Types.Constraint">Cts</a></li><li class="src short"><a href="#v:getTcSInerts">getTcSInerts</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Solver-Monad.html#t:InertSet" title="GHC.Tc.Solver.Monad">InertSet</a></li><li class="src short"><a href="#v:setTcSInerts">setTcSInerts</a> :: <a href="GHC-Tc-Solver-Monad.html#t:InertSet" title="GHC.Tc.Solver.Monad">InertSet</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> ()</li><li class="src short"><a href="#v:matchableGivens">matchableGivens</a> :: <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a> -&gt; <a href="GHC-Core-Type.html#t:PredType" title="GHC.Core.Type">PredType</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:InertSet" title="GHC.Tc.Solver.Monad">InertSet</a> -&gt; <a href="GHC-Tc-Types-Constraint.html#t:Cts" title="GHC.Tc.Types.Constraint">Cts</a></li><li class="src short"><a href="#v:prohibitedSuperClassSolve">prohibitedSuperClassSolve</a> :: <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a> -&gt; <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><a href="#v:mightMatchLater">mightMatchLater</a> :: <a href="GHC-Tc-Utils-TcType.html#t:TcPredType" title="GHC.Tc.Utils.TcType">TcPredType</a> -&gt; <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a> -&gt; <a href="GHC-Tc-Utils-TcType.html#t:TcPredType" title="GHC.Tc.Utils.TcType">TcPredType</a> -&gt; <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><a href="#v:getUnsolvedInerts">getUnsolvedInerts</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> (<a href="GHC-Data-Bag.html#t:Bag" title="GHC.Data.Bag">Bag</a> <a href="GHC-Tc-Types-Constraint.html#t:Implication" title="GHC.Tc.Types.Constraint">Implication</a>, <a href="GHC-Tc-Types-Constraint.html#t:Cts" title="GHC.Tc.Types.Constraint">Cts</a>, <a href="GHC-Tc-Types-Constraint.html#t:Cts" title="GHC.Tc.Types.Constraint">Cts</a>, <a href="GHC-Tc-Types-Constraint.html#t:Cts" title="GHC.Tc.Types.Constraint">Cts</a>)</li><li class="src short"><a href="#v:removeInertCts">removeInertCts</a> :: [<a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a>] -&gt; <a href="GHC-Tc-Solver-Monad.html#t:InertCans" title="GHC.Tc.Solver.Monad">InertCans</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:InertCans" title="GHC.Tc.Solver.Monad">InertCans</a></li><li class="src short"><a href="#v:getPendingGivenScs">getPendingGivenScs</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> [<a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a>]</li><li class="src short"><a href="#v:addInertCan">addInertCan</a> :: <a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> ()</li><li class="src short"><a href="#v:insertFunEq">insertFunEq</a> :: FunEqMap a -&gt; <a href="GHC-Core-TyCon.html#t:TyCon" title="GHC.Core.TyCon">TyCon</a> -&gt; [<a href="GHC-Core-Type.html#t:Type" title="GHC.Core.Type">Type</a>] -&gt; a -&gt; FunEqMap a</li><li class="src short"><a href="#v:addInertForAll">addInertForAll</a> :: <a href="GHC-Tc-Solver-Monad.html#t:QCInst" title="GHC.Tc.Solver.Monad">QCInst</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> ()</li><li class="src short"><a href="#v:emitWorkNC">emitWorkNC</a> :: [<a href="GHC-Tc-Types-Constraint.html#t:CtEvidence" title="GHC.Tc.Types.Constraint">CtEvidence</a>] -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> ()</li><li class="src short"><a href="#v:emitWork">emitWork</a> :: [<a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a>] -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> ()</li><li class="src short"><a href="#v:isImprovable">isImprovable</a> :: <a href="GHC-Tc-Types-Constraint.html#t:CtEvidence" title="GHC.Tc.Types.Constraint">CtEvidence</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><a href="#v:kickOutAfterUnification">kickOutAfterUnification</a> :: <a href="GHC-Types-Var.html#t:TcTyVar" title="GHC.Types.Var">TcTyVar</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></li><li class="src short"><a href="#v:addInertSafehask">addInertSafehask</a> :: <a href="GHC-Tc-Solver-Monad.html#t:InertCans" title="GHC.Tc.Solver.Monad">InertCans</a> -&gt; <a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:InertCans" title="GHC.Tc.Solver.Monad">InertCans</a></li><li class="src short"><a href="#v:insertSafeOverlapFailureTcS">insertSafeOverlapFailureTcS</a> :: <a href="GHC-Tc-Instance-Class.html#t:InstanceWhat" title="GHC.Tc.Instance.Class">InstanceWhat</a> -&gt; <a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> ()</li><li class="src short"><a href="#v:updInertSafehask">updInertSafehask</a> :: (<a href="GHC-Tc-Solver-Monad.html#t:DictMap" title="GHC.Tc.Solver.Monad">DictMap</a> <a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:DictMap" title="GHC.Tc.Solver.Monad">DictMap</a> <a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a>) -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> ()</li><li class="src short"><a href="#v:getSafeOverlapFailures">getSafeOverlapFailures</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Types-Constraint.html#t:Cts" title="GHC.Tc.Types.Constraint">Cts</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:DictMap">DictMap</a> a = TcAppMap a</li><li class="src short"><a href="#v:emptyDictMap">emptyDictMap</a> :: <a href="GHC-Tc-Solver-Monad.html#t:DictMap" title="GHC.Tc.Solver.Monad">DictMap</a> a</li><li class="src short"><a href="#v:lookupInertDict">lookupInertDict</a> :: <a href="GHC-Tc-Solver-Monad.html#t:InertCans" title="GHC.Tc.Solver.Monad">InertCans</a> -&gt; <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a> -&gt; <a href="GHC-Core-Class.html#t:Class" title="GHC.Core.Class">Class</a> -&gt; [<a href="GHC-Core-Type.html#t:Type" title="GHC.Core.Type">Type</a>] -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a></li><li class="src short"><a href="#v:findDictsByClass">findDictsByClass</a> :: <a href="GHC-Tc-Solver-Monad.html#t:DictMap" title="GHC.Tc.Solver.Monad">DictMap</a> a -&gt; <a href="GHC-Core-Class.html#t:Class" title="GHC.Core.Class">Class</a> -&gt; <a href="GHC-Data-Bag.html#t:Bag" title="GHC.Data.Bag">Bag</a> a</li><li class="src short"><a href="#v:addDict">addDict</a> :: <a href="GHC-Tc-Solver-Monad.html#t:DictMap" title="GHC.Tc.Solver.Monad">DictMap</a> a -&gt; <a href="GHC-Core-Class.html#t:Class" title="GHC.Core.Class">Class</a> -&gt; [<a href="GHC-Core-Type.html#t:Type" title="GHC.Core.Type">Type</a>] -&gt; a -&gt; <a href="GHC-Tc-Solver-Monad.html#t:DictMap" title="GHC.Tc.Solver.Monad">DictMap</a> a</li><li class="src short"><a href="#v:addDictsByClass">addDictsByClass</a> :: <a href="GHC-Tc-Solver-Monad.html#t:DictMap" title="GHC.Tc.Solver.Monad">DictMap</a> <a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a> -&gt; <a href="GHC-Core-Class.html#t:Class" title="GHC.Core.Class">Class</a> -&gt; <a href="GHC-Data-Bag.html#t:Bag" title="GHC.Data.Bag">Bag</a> <a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:DictMap" title="GHC.Tc.Solver.Monad">DictMap</a> <a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a></li><li class="src short"><a href="#v:delDict">delDict</a> :: <a href="GHC-Tc-Solver-Monad.html#t:DictMap" title="GHC.Tc.Solver.Monad">DictMap</a> a -&gt; <a href="GHC-Core-Class.html#t:Class" title="GHC.Core.Class">Class</a> -&gt; [<a href="GHC-Core-Type.html#t:Type" title="GHC.Core.Type">Type</a>] -&gt; <a href="GHC-Tc-Solver-Monad.html#t:DictMap" title="GHC.Tc.Solver.Monad">DictMap</a> a</li><li class="src short"><a href="#v:foldDicts">foldDicts</a> :: (a -&gt; b -&gt; b) -&gt; <a href="GHC-Tc-Solver-Monad.html#t:DictMap" title="GHC.Tc.Solver.Monad">DictMap</a> a -&gt; b -&gt; b</li><li class="src short"><a href="#v:filterDicts">filterDicts</a> :: (<a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a>) -&gt; <a href="GHC-Tc-Solver-Monad.html#t:DictMap" title="GHC.Tc.Solver.Monad">DictMap</a> <a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:DictMap" title="GHC.Tc.Solver.Monad">DictMap</a> <a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a></li><li class="src short"><a href="#v:findDict">findDict</a> :: <a href="GHC-Tc-Solver-Monad.html#t:DictMap" title="GHC.Tc.Solver.Monad">DictMap</a> a -&gt; <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a> -&gt; <a href="GHC-Core-Class.html#t:Class" title="GHC.Core.Class">Class</a> -&gt; [<a href="GHC-Core-Type.html#t:Type" title="GHC.Core.Type">Type</a>] -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> a</li><li class="src short"><span class="keyword">type</span> <a href="#t:EqualCtList">EqualCtList</a> = [<a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a>]</li><li class="src short"><a href="#v:findTyEqs">findTyEqs</a> :: <a href="GHC-Tc-Solver-Monad.html#t:InertCans" title="GHC.Tc.Solver.Monad">InertCans</a> -&gt; <a href="GHC-Types-Var.html#t:TyVar" title="GHC.Types.Var">TyVar</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:EqualCtList" title="GHC.Tc.Solver.Monad">EqualCtList</a></li><li class="src short"><a href="#v:foldTyEqs">foldTyEqs</a> :: (<a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a> -&gt; b -&gt; b) -&gt; InertEqs -&gt; b -&gt; b</li><li class="src short"><a href="#v:isInInertEqs">isInInertEqs</a> :: <a href="GHC-Types-Var-Env.html#t:DTyVarEnv" title="GHC.Types.Var.Env">DTyVarEnv</a> <a href="GHC-Tc-Solver-Monad.html#t:EqualCtList" title="GHC.Tc.Solver.Monad">EqualCtList</a> -&gt; <a href="GHC-Types-Var.html#t:TcTyVar" title="GHC.Types.Var">TcTyVar</a> -&gt; <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><a href="#v:lookupInertTyVar">lookupInertTyVar</a> :: InertEqs -&gt; <a href="GHC-Types-Var.html#t:TcTyVar" title="GHC.Types.Var">TcTyVar</a> -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a></li><li class="src short"><a href="#v:addSolvedDict">addSolvedDict</a> :: <a href="GHC-Tc-Instance-Class.html#t:InstanceWhat" title="GHC.Tc.Instance.Class">InstanceWhat</a> -&gt; <a href="GHC-Tc-Types-Constraint.html#t:CtEvidence" title="GHC.Tc.Types.Constraint">CtEvidence</a> -&gt; <a href="GHC-Core-Class.html#t:Class" title="GHC.Core.Class">Class</a> -&gt; [<a href="GHC-Core-Type.html#t:Type" title="GHC.Core.Type">Type</a>] -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> ()</li><li class="src short"><a href="#v:lookupSolvedDict">lookupSolvedDict</a> :: <a href="GHC-Tc-Solver-Monad.html#t:InertSet" title="GHC.Tc.Solver.Monad">InertSet</a> -&gt; <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a> -&gt; <a href="GHC-Core-Class.html#t:Class" title="GHC.Core.Class">Class</a> -&gt; [<a href="GHC-Core-Type.html#t:Type" title="GHC.Core.Type">Type</a>] -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Tc-Types-Constraint.html#t:CtEvidence" title="GHC.Tc.Types.Constraint">CtEvidence</a></li><li class="src short"><a href="#v:foldIrreds">foldIrreds</a> :: (<a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a> -&gt; b -&gt; b) -&gt; <a href="GHC-Tc-Types-Constraint.html#t:Cts" title="GHC.Tc.Types.Constraint">Cts</a> -&gt; b -&gt; b</li><li class="src short"><a href="#v:lookupFlatCache">lookupFlatCache</a> :: <a href="GHC-Core-TyCon.html#t:TyCon" title="GHC.Core.TyCon">TyCon</a> -&gt; [<a href="GHC-Core-Type.html#t:Type" title="GHC.Core.Type">Type</a>] -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> (<a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (<a href="GHC-Tc-Types-Evidence.html#t:TcCoercion" title="GHC.Tc.Types.Evidence">TcCoercion</a>, <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a>, <a href="GHC-Tc-Types-Constraint.html#t:CtFlavour" title="GHC.Tc.Types.Constraint">CtFlavour</a>))</li><li class="src short"><a href="#v:extendFlatCache">extendFlatCache</a> :: <a href="GHC-Core-TyCon.html#t:TyCon" title="GHC.Core.TyCon">TyCon</a> -&gt; [<a href="GHC-Core-Type.html#t:Type" title="GHC.Core.Type">Type</a>] -&gt; (<a href="GHC-Tc-Types-Evidence.html#t:TcCoercion" title="GHC.Tc.Types.Evidence">TcCoercion</a>, <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a>, <a href="GHC-Tc-Types-Constraint.html#t:CtFlavour" title="GHC.Tc.Types.Constraint">CtFlavour</a>) -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> ()</li><li class="src short"><a href="#v:newFlattenSkolem">newFlattenSkolem</a> :: <a href="GHC-Tc-Types-Constraint.html#t:CtFlavour" title="GHC.Tc.Types.Constraint">CtFlavour</a> -&gt; <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a> -&gt; <a href="GHC-Core-TyCon.html#t:TyCon" title="GHC.Core.TyCon">TyCon</a> -&gt; [<a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a>] -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> (<a href="GHC-Tc-Types-Constraint.html#t:CtEvidence" title="GHC.Tc.Types.Constraint">CtEvidence</a>, <a href="GHC-Core-Coercion.html#t:Coercion" title="GHC.Core.Coercion">Coercion</a>, <a href="GHC-Types-Var.html#t:TcTyVar" title="GHC.Types.Var">TcTyVar</a>)</li><li class="src short"><a href="#v:dischargeFunEq">dischargeFunEq</a> :: <a href="GHC-Tc-Types-Constraint.html#t:CtEvidence" title="GHC.Tc.Types.Constraint">CtEvidence</a> -&gt; <a href="GHC-Types-Var.html#t:TcTyVar" title="GHC.Types.Var">TcTyVar</a> -&gt; <a href="GHC-Tc-Types-Evidence.html#t:TcCoercion" title="GHC.Tc.Types.Evidence">TcCoercion</a> -&gt; <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> ()</li><li class="src short"><a href="#v:pprKicked">pprKicked</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a></li><li class="src short"><a href="#v:updInertFunEqs">updInertFunEqs</a> :: (FunEqMap <a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a> -&gt; FunEqMap <a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a>) -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> ()</li><li class="src short"><a href="#v:findFunEq">findFunEq</a> :: FunEqMap a -&gt; <a href="GHC-Core-TyCon.html#t:TyCon" title="GHC.Core.TyCon">TyCon</a> -&gt; [<a href="GHC-Core-Type.html#t:Type" title="GHC.Core.Type">Type</a>] -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> a</li><li class="src short"><a href="#v:findFunEqsByTyCon">findFunEqsByTyCon</a> :: FunEqMap a -&gt; <a href="GHC-Core-TyCon.html#t:TyCon" title="GHC.Core.TyCon">TyCon</a> -&gt; [a]</li><li class="src short"><a href="#v:instDFunType">instDFunType</a> :: <a href="GHC-Types-Var.html#t:DFunId" title="GHC.Types.Var">DFunId</a> -&gt; [<a href="GHC-Core-InstEnv.html#t:DFunInstType" title="GHC.Core.InstEnv">DFunInstType</a>] -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> ([<a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a>], <a href="GHC-Tc-Utils-TcType.html#t:TcThetaType" title="GHC.Tc.Utils.TcType">TcThetaType</a>)</li><li class="src short"><a href="#v:newFlexiTcSTy">newFlexiTcSTy</a> :: <a href="GHC-Core-Type.html#t:Kind" title="GHC.Core.Type">Kind</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a></li><li class="src short"><a href="#v:instFlexi">instFlexi</a> :: [<a href="GHC-Types-Var.html#t:TKVar" title="GHC.Types.Var">TKVar</a>] -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Core-Type.html#t:TCvSubst" title="GHC.Core.Type">TCvSubst</a></li><li class="src short"><a href="#v:instFlexiX">instFlexiX</a> :: <a href="GHC-Core-Type.html#t:TCvSubst" title="GHC.Core.Type">TCvSubst</a> -&gt; [<a href="GHC-Types-Var.html#t:TKVar" title="GHC.Types.Var">TKVar</a>] -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Core-Type.html#t:TCvSubst" title="GHC.Core.Type">TCvSubst</a></li><li class="src short"><a href="#v:cloneMetaTyVar">cloneMetaTyVar</a> :: <a href="GHC-Types-Var.html#t:TcTyVar" title="GHC.Types.Var">TcTyVar</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Types-Var.html#t:TcTyVar" title="GHC.Types.Var">TcTyVar</a></li><li class="src short"><a href="#v:demoteUnfilledFmv">demoteUnfilledFmv</a> :: <a href="GHC-Types-Var.html#t:TcTyVar" title="GHC.Types.Var">TcTyVar</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> ()</li><li class="src short"><a href="#v:tcInstSkolTyVarsX">tcInstSkolTyVarsX</a> :: <a href="GHC-Core-Type.html#t:TCvSubst" title="GHC.Core.Type">TCvSubst</a> -&gt; [<a href="GHC-Types-Var.html#t:TyVar" title="GHC.Types.Var">TyVar</a>] -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> (<a href="GHC-Core-Type.html#t:TCvSubst" title="GHC.Core.Type">TCvSubst</a>, [<a href="GHC-Types-Var.html#t:TcTyVar" title="GHC.Types.Var">TcTyVar</a>])</li><li class="src short"><span class="keyword">data</span> <a href="#t:TcLevel">TcLevel</a></li><li class="src short"><a href="#v:isFilledMetaTyVar_maybe">isFilledMetaTyVar_maybe</a> :: <a href="GHC-Types-Var.html#t:TcTyVar" title="GHC.Types.Var">TcTyVar</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> (<a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Core-Type.html#t:Type" title="GHC.Core.Type">Type</a>)</li><li class="src short"><a href="#v:isFilledMetaTyVar">isFilledMetaTyVar</a> :: <a href="GHC-Types-Var.html#t:TcTyVar" title="GHC.Types.Var">TcTyVar</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></li><li class="src short"><a href="#v:zonkTyCoVarsAndFV">zonkTyCoVarsAndFV</a> :: <a href="GHC-Tc-Utils-TcType.html#t:TcTyCoVarSet" title="GHC.Tc.Utils.TcType">TcTyCoVarSet</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Utils-TcType.html#t:TcTyCoVarSet" title="GHC.Tc.Utils.TcType">TcTyCoVarSet</a></li><li class="src short"><a href="#v:zonkTcType">zonkTcType</a> :: <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a></li><li class="src short"><a href="#v:zonkTcTypes">zonkTcTypes</a> :: [<a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a>] -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> [<a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a>]</li><li class="src short"><a href="#v:zonkTcTyVar">zonkTcTyVar</a> :: <a href="GHC-Types-Var.html#t:TcTyVar" title="GHC.Types.Var">TcTyVar</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a></li><li class="src short"><a href="#v:zonkCo">zonkCo</a> :: <a href="GHC-Core-Coercion.html#t:Coercion" title="GHC.Core.Coercion">Coercion</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Core-Coercion.html#t:Coercion" title="GHC.Core.Coercion">Coercion</a></li><li class="src short"><a href="#v:zonkTyCoVarsAndFVList">zonkTyCoVarsAndFVList</a> :: [<a href="GHC-Tc-Utils-TcType.html#t:TcTyCoVar" title="GHC.Tc.Utils.TcType">TcTyCoVar</a>] -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> [<a href="GHC-Tc-Utils-TcType.html#t:TcTyCoVar" title="GHC.Tc.Utils.TcType">TcTyCoVar</a>]</li><li class="src short"><a href="#v:zonkSimples">zonkSimples</a> :: <a href="GHC-Tc-Types-Constraint.html#t:Cts" title="GHC.Tc.Types.Constraint">Cts</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Types-Constraint.html#t:Cts" title="GHC.Tc.Types.Constraint">Cts</a></li><li class="src short"><a href="#v:zonkWC">zonkWC</a> :: <a href="GHC-Tc-Types-Constraint.html#t:WantedConstraints" title="GHC.Tc.Types.Constraint">WantedConstraints</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Types-Constraint.html#t:WantedConstraints" title="GHC.Tc.Types.Constraint">WantedConstraints</a></li><li class="src short"><a href="#v:zonkTyCoVarKind">zonkTyCoVarKind</a> :: <a href="GHC-Tc-Utils-TcType.html#t:TcTyCoVar" title="GHC.Tc.Utils.TcType">TcTyCoVar</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Utils-TcType.html#t:TcTyCoVar" title="GHC.Tc.Utils.TcType">TcTyCoVar</a></li><li class="src short"><a href="#v:newTcRef">newTcRef</a> :: a -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> (<a href="GHC-Tc-Types.html#t:TcRef" title="GHC.Tc.Types">TcRef</a> a)</li><li class="src short"><a href="#v:readTcRef">readTcRef</a> :: <a href="GHC-Tc-Types.html#t:TcRef" title="GHC.Tc.Types">TcRef</a> a -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a</li><li class="src short"><a href="#v:writeTcRef">writeTcRef</a> :: <a href="GHC-Tc-Types.html#t:TcRef" title="GHC.Tc.Types">TcRef</a> a -&gt; a -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> ()</li><li class="src short"><a href="#v:updTcRef">updTcRef</a> :: <a href="GHC-Tc-Types.html#t:TcRef" title="GHC.Tc.Types">TcRef</a> a -&gt; (a -&gt; a) -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> ()</li><li class="src short"><a href="#v:getDefaultInfo">getDefaultInfo</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> ([<a href="GHC-Core-Type.html#t:Type" title="GHC.Core.Type">Type</a>], (<a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a>, <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a>))</li><li class="src short"><a href="#v:getDynFlags">getDynFlags</a> :: <a href="GHC-Driver-Session.html#t:HasDynFlags" title="GHC.Driver.Session">HasDynFlags</a> m =&gt; m <a href="GHC-Driver-Session.html#t:DynFlags" title="GHC.Driver.Session">DynFlags</a></li><li class="src short"><a href="#v:getGlobalRdrEnvTcS">getGlobalRdrEnvTcS</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Types-Name-Reader.html#t:GlobalRdrEnv" title="GHC.Types.Name.Reader">GlobalRdrEnv</a></li><li class="src short"><a href="#v:matchFam">matchFam</a> :: <a href="GHC-Core-TyCon.html#t:TyCon" title="GHC.Core.TyCon">TyCon</a> -&gt; [<a href="GHC-Core-Type.html#t:Type" title="GHC.Core.Type">Type</a>] -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> (<a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (<a href="GHC-Core-Coercion.html#t:CoercionN" title="GHC.Core.Coercion">CoercionN</a>, <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a>))</li><li class="src short"><a href="#v:matchFamTcM">matchFamTcM</a> :: <a href="GHC-Core-TyCon.html#t:TyCon" title="GHC.Core.TyCon">TyCon</a> -&gt; [<a href="GHC-Core-Type.html#t:Type" title="GHC.Core.Type">Type</a>] -&gt; <a href="GHC-Tc-Types.html#t:TcM" title="GHC.Tc.Types">TcM</a> (<a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (<a href="GHC-Core-Coercion.html#t:CoercionN" title="GHC.Core.Coercion">CoercionN</a>, <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a>))</li><li class="src short"><a href="#v:checkWellStagedDFun">checkWellStagedDFun</a> :: <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a> -&gt; <a href="GHC-Tc-Instance-Class.html#t:InstanceWhat" title="GHC.Tc.Instance.Class">InstanceWhat</a> -&gt; <a href="GHC-Core-Type.html#t:PredType" title="GHC.Core.Type">PredType</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> ()</li><li class="src short"><a href="#v:pprEq">pprEq</a> :: <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a> -&gt; <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a></li></ul></details></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:WorkList" class="def">WorkList</a> <a href="src/GHC.Tc.Solver.Monad.html#WorkList" class="link">Source</a> <a href="#t:WorkList" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:WL" class="def">WL</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:wl_eqs" class="def">wl_eqs</a> :: [<a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a>]</dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:wl_funeqs" class="def">wl_funeqs</a> :: [<a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a>]</dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:wl_rest" class="def">wl_rest</a> :: [<a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a>]</dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:wl_implics" class="def">wl_implics</a> :: <a href="GHC-Data-Bag.html#t:Bag" title="GHC.Data.Bag">Bag</a> <a href="GHC-Tc-Types-Constraint.html#t:Implication" title="GHC.Tc.Types.Constraint">Implication</a></dfn><div class="doc empty">&nbsp;</div></li></ul></div></td></tr></table></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:WorkList">Instances</h4><details id="i:WorkList" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:WorkList:Outputable:1"></span> <a href="GHC-Utils-Outputable.html#t:Outputable" title="GHC.Utils.Outputable">Outputable</a> <a href="GHC-Tc-Solver-Monad.html#t:WorkList" title="GHC.Tc.Solver.Monad">WorkList</a></span> <a href="src/GHC.Tc.Solver.Monad.html#line-383" class="link">Source</a> <a href="#t:WorkList" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:WorkList:Outputable:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Tc-Solver-Monad.html">GHC.Tc.Solver.Monad</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ppr">ppr</a> :: <a href="GHC-Tc-Solver-Monad.html#t:WorkList" title="GHC.Tc.Solver.Monad">WorkList</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#ppr" class="link">Source</a> <a href="#v:ppr" class="selflink">#</a></p><p class="src"><a href="#v:pprPrec">pprPrec</a> :: <a href="GHC-Prelude.html#t:Rational" title="GHC.Prelude">Rational</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:WorkList" title="GHC.Tc.Solver.Monad">WorkList</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#pprPrec" class="link">Source</a> <a href="#v:pprPrec" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><a id="v:isEmptyWorkList" class="def">isEmptyWorkList</a> :: <a href="GHC-Tc-Solver-Monad.html#t:WorkList" title="GHC.Tc.Solver.Monad">WorkList</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.Tc.Solver.Monad.html#isEmptyWorkList" class="link">Source</a> <a href="#v:isEmptyWorkList" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:emptyWorkList" class="def">emptyWorkList</a> :: <a href="GHC-Tc-Solver-Monad.html#t:WorkList" title="GHC.Tc.Solver.Monad">WorkList</a> <a href="src/GHC.Tc.Solver.Monad.html#emptyWorkList" class="link">Source</a> <a href="#v:emptyWorkList" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:extendWorkListNonEq" class="def">extendWorkListNonEq</a> :: <a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:WorkList" title="GHC.Tc.Solver.Monad">WorkList</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:WorkList" title="GHC.Tc.Solver.Monad">WorkList</a> <a href="src/GHC.Tc.Solver.Monad.html#extendWorkListNonEq" class="link">Source</a> <a href="#v:extendWorkListNonEq" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:extendWorkListCt" class="def">extendWorkListCt</a> :: <a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:WorkList" title="GHC.Tc.Solver.Monad">WorkList</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:WorkList" title="GHC.Tc.Solver.Monad">WorkList</a> <a href="src/GHC.Tc.Solver.Monad.html#extendWorkListCt" class="link">Source</a> <a href="#v:extendWorkListCt" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:extendWorkListCts" class="def">extendWorkListCts</a> :: [<a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a>] -&gt; <a href="GHC-Tc-Solver-Monad.html#t:WorkList" title="GHC.Tc.Solver.Monad">WorkList</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:WorkList" title="GHC.Tc.Solver.Monad">WorkList</a> <a href="src/GHC.Tc.Solver.Monad.html#extendWorkListCts" class="link">Source</a> <a href="#v:extendWorkListCts" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:extendWorkListEq" class="def">extendWorkListEq</a> :: <a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:WorkList" title="GHC.Tc.Solver.Monad">WorkList</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:WorkList" title="GHC.Tc.Solver.Monad">WorkList</a> <a href="src/GHC.Tc.Solver.Monad.html#extendWorkListEq" class="link">Source</a> <a href="#v:extendWorkListEq" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:extendWorkListFunEq" class="def">extendWorkListFunEq</a> :: <a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:WorkList" title="GHC.Tc.Solver.Monad">WorkList</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:WorkList" title="GHC.Tc.Solver.Monad">WorkList</a> <a href="src/GHC.Tc.Solver.Monad.html#extendWorkListFunEq" class="link">Source</a> <a href="#v:extendWorkListFunEq" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:appendWorkList" class="def">appendWorkList</a> :: <a href="GHC-Tc-Solver-Monad.html#t:WorkList" title="GHC.Tc.Solver.Monad">WorkList</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:WorkList" title="GHC.Tc.Solver.Monad">WorkList</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:WorkList" title="GHC.Tc.Solver.Monad">WorkList</a> <a href="src/GHC.Tc.Solver.Monad.html#appendWorkList" class="link">Source</a> <a href="#v:appendWorkList" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:selectNextWorkItem" class="def">selectNextWorkItem</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> (<a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a>) <a href="src/GHC.Tc.Solver.Monad.html#selectNextWorkItem" class="link">Source</a> <a href="#v:selectNextWorkItem" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:workListSize" class="def">workListSize</a> :: <a href="GHC-Tc-Solver-Monad.html#t:WorkList" title="GHC.Tc.Solver.Monad">WorkList</a> -&gt; <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> <a href="src/GHC.Tc.Solver.Monad.html#workListSize" class="link">Source</a> <a href="#v:workListSize" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:workListWantedCount" class="def">workListWantedCount</a> :: <a href="GHC-Tc-Solver-Monad.html#t:WorkList" title="GHC.Tc.Solver.Monad">WorkList</a> -&gt; <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> <a href="src/GHC.Tc.Solver.Monad.html#workListWantedCount" class="link">Source</a> <a href="#v:workListWantedCount" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getWorkList" class="def">getWorkList</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Solver-Monad.html#t:WorkList" title="GHC.Tc.Solver.Monad">WorkList</a> <a href="src/GHC.Tc.Solver.Monad.html#getWorkList" class="link">Source</a> <a href="#v:getWorkList" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:updWorkListTcS" class="def">updWorkListTcS</a> :: (<a href="GHC-Tc-Solver-Monad.html#t:WorkList" title="GHC.Tc.Solver.Monad">WorkList</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:WorkList" title="GHC.Tc.Solver.Monad">WorkList</a>) -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> () <a href="src/GHC.Tc.Solver.Monad.html#updWorkListTcS" class="link">Source</a> <a href="#v:updWorkListTcS" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:pushLevelNoWorkList" class="def">pushLevelNoWorkList</a> :: <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> (<a href="GHC-Tc-Solver-Monad.html#t:TcLevel" title="GHC.Tc.Solver.Monad">TcLevel</a>, a) <a href="src/GHC.Tc.Solver.Monad.html#pushLevelNoWorkList" class="link">Source</a> <a href="#v:pushLevelNoWorkList" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:TcS" class="def">TcS</a> a <a href="src/GHC.Tc.Solver.Monad.html#TcS" class="link">Source</a> <a href="#t:TcS" class="selflink">#</a></p><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:TcS">Instances</h4><details id="i:TcS" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:TcS:MonadFail:1"></span> <a href="GHC-Prelude.html#t:MonadFail" title="GHC.Prelude">MonadFail</a> <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a></span> <a href="src/GHC.Tc.Solver.Monad.html#line-2721" class="link">Source</a> <a href="#t:TcS" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:TcS:MonadFail:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Tc-Solver-Monad.html">GHC.Tc.Solver.Monad</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fail">fail</a> :: <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a <a href="../base/src/Control.Monad.Fail.html#fail" class="link">Source</a> <a href="#v:fail" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:TcS:Applicative:2"></span> <a href="GHC-Prelude.html#t:Applicative" title="GHC.Prelude">Applicative</a> <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a></span> <a href="src/GHC.Tc.Solver.Monad.html#line-2714" class="link">Source</a> <a href="#t:TcS" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:TcS:Applicative:2"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Tc-Solver-Monad.html">GHC.Tc.Solver.Monad</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:pure">pure</a> :: a -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a <a href="../base/src/GHC.Base.html#pure" class="link">Source</a> <a href="#v:pure" class="selflink">#</a></p><p class="src"><a href="#v:-60--42--62-">(&lt;*&gt;)</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> (a -&gt; b) -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> b <a href="../base/src/GHC.Base.html#%3C%2A%3E" class="link">Source</a> <a href="#v:-60--42--62-" class="selflink">#</a></p><p class="src"><a href="#v:liftA2">liftA2</a> :: (a -&gt; b -&gt; c) -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> b -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> c <a href="../base/src/GHC.Base.html#liftA2" class="link">Source</a> <a href="#v:liftA2" class="selflink">#</a></p><p class="src"><a href="#v:-42--62-">(*&gt;)</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> b -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> b <a href="../base/src/GHC.Base.html#%2A%3E" class="link">Source</a> <a href="#v:-42--62-" class="selflink">#</a></p><p class="src"><a href="#v:-60--42-">(&lt;*)</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> b -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a <a href="../base/src/GHC.Base.html#%3C%2A" class="link">Source</a> <a href="#v:-60--42-" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:TcS:Functor:3"></span> <a href="GHC-Prelude.html#t:Functor" title="GHC.Prelude">Functor</a> <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a></span> <a href="src/GHC.Tc.Solver.Monad.html#line-2712" class="link">Source</a> <a href="#t:TcS" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:TcS:Functor:3"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Tc-Solver-Monad.html">GHC.Tc.Solver.Monad</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fmap">fmap</a> :: (a -&gt; b) -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> b <a href="../base/src/GHC.Base.html#fmap" class="link">Source</a> <a href="#v:fmap" class="selflink">#</a></p><p class="src"><a href="#v:-60--36-">(&lt;$)</a> :: a -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> b -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a <a href="../base/src/GHC.Base.html#%3C%24" class="link">Source</a> <a href="#v:-60--36-" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:TcS:Monad:4"></span> <a href="GHC-Prelude.html#t:Monad" title="GHC.Prelude">Monad</a> <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a></span> <a href="src/GHC.Tc.Solver.Monad.html#line-2718" class="link">Source</a> <a href="#t:TcS" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:TcS:Monad:4"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Tc-Solver-Monad.html">GHC.Tc.Solver.Monad</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-62--62--61-">(&gt;&gt;=)</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a -&gt; (a -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> b) -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> b <a href="../base/src/GHC.Base.html#%3E%3E%3D" class="link">Source</a> <a href="#v:-62--62--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62--62-">(&gt;&gt;)</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> b -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> b <a href="../base/src/GHC.Base.html#%3E%3E" class="link">Source</a> <a href="#v:-62--62-" class="selflink">#</a></p><p class="src"><a href="#v:return">return</a> :: a -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a <a href="../base/src/GHC.Base.html#return" class="link">Source</a> <a href="#v:return" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:TcS:HasDynFlags:5"></span> <a href="GHC-Driver-Session.html#t:HasDynFlags" title="GHC.Driver.Session">HasDynFlags</a> <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a></span> <a href="src/GHC.Tc.Solver.Monad.html#line-2766" class="link">Source</a> <a href="#t:TcS" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:TcS:HasDynFlags:5"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Tc-Solver-Monad.html">GHC.Tc.Solver.Monad</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:getDynFlags">getDynFlags</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Driver-Session.html#t:DynFlags" title="GHC.Driver.Session">DynFlags</a> <a href="src/GHC.Driver.Session.html#getDynFlags" class="link">Source</a> <a href="#v:getDynFlags" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:TcS:MonadThings:6"></span> <a href="GHC-Driver-Types.html#t:MonadThings" title="GHC.Driver.Types">MonadThings</a> <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a></span> <a href="src/GHC.Tc.Solver.Monad.html#line-2730" class="link">Source</a> <a href="#t:TcS" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:TcS:MonadThings:6"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Tc-Solver-Monad.html">GHC.Tc.Solver.Monad</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:lookupThing">lookupThing</a> :: <a href="GHC-Types-Name.html#t:Name" title="GHC.Types.Name">Name</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Core-Type.html#t:TyThing" title="GHC.Core.Type">TyThing</a> <a href="src/GHC.Driver.Types.html#lookupThing" class="link">Source</a> <a href="#v:lookupThing" class="selflink">#</a></p><p class="src"><a href="#v:lookupId">lookupId</a> :: <a href="GHC-Types-Name.html#t:Name" title="GHC.Types.Name">Name</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Types-Var.html#t:Id" title="GHC.Types.Var">Id</a> <a href="src/GHC.Driver.Types.html#lookupId" class="link">Source</a> <a href="#v:lookupId" class="selflink">#</a></p><p class="src"><a href="#v:lookupDataCon">lookupDataCon</a> :: <a href="GHC-Types-Name.html#t:Name" title="GHC.Types.Name">Name</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Core-DataCon.html#t:DataCon" title="GHC.Core.DataCon">DataCon</a> <a href="src/GHC.Driver.Types.html#lookupDataCon" class="link">Source</a> <a href="#v:lookupDataCon" class="selflink">#</a></p><p class="src"><a href="#v:lookupTyCon">lookupTyCon</a> :: <a href="GHC-Types-Name.html#t:Name" title="GHC.Types.Name">Name</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Core-TyCon.html#t:TyCon" title="GHC.Core.TyCon">TyCon</a> <a href="src/GHC.Driver.Types.html#lookupTyCon" class="link">Source</a> <a href="#v:lookupTyCon" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:TcS:MonadUnique:7"></span> <a href="GHC-Types-Unique-Supply.html#t:MonadUnique" title="GHC.Types.Unique.Supply">MonadUnique</a> <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a></span> <a href="src/GHC.Tc.Solver.Monad.html#line-2724" class="link">Source</a> <a href="#t:TcS" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:TcS:MonadUnique:7"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Tc-Solver-Monad.html">GHC.Tc.Solver.Monad</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:getUniqueSupplyM">getUniqueSupplyM</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Types-Unique-Supply.html#t:UniqSupply" title="GHC.Types.Unique.Supply">UniqSupply</a> <a href="src/GHC.Types.Unique.Supply.html#getUniqueSupplyM" class="link">Source</a> <a href="#v:getUniqueSupplyM" class="selflink">#</a></p><p class="src"><a href="#v:getUniqueM">getUniqueM</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Types-Unique.html#t:Unique" title="GHC.Types.Unique">Unique</a> <a href="src/GHC.Types.Unique.Supply.html#getUniqueM" class="link">Source</a> <a href="#v:getUniqueM" class="selflink">#</a></p><p class="src"><a href="#v:getUniquesM">getUniquesM</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> [<a href="GHC-Types-Unique.html#t:Unique" title="GHC.Types.Unique">Unique</a>] <a href="src/GHC.Types.Unique.Supply.html#getUniquesM" class="link">Source</a> <a href="#v:getUniquesM" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:TcS:HasModule:8"></span> <a href="GHC-Unit-Module.html#t:HasModule" title="GHC.Unit.Module">HasModule</a> <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a></span> <a href="src/GHC.Tc.Solver.Monad.html#line-2727" class="link">Source</a> <a href="#t:TcS" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:TcS:HasModule:8"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Tc-Solver-Monad.html">GHC.Tc.Solver.Monad</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:getModule">getModule</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Unit-Types.html#t:Module" title="GHC.Unit.Types">Module</a> <a href="src/GHC.Unit.Module.html#getModule" class="link">Source</a> <a href="#v:getModule" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><a id="v:runTcS" class="def">runTcS</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a -&gt; <a href="GHC-Tc-Types.html#t:TcM" title="GHC.Tc.Types">TcM</a> (a, <a href="GHC-Tc-Types-Evidence.html#t:EvBindMap" title="GHC.Tc.Types.Evidence">EvBindMap</a>) <a href="src/GHC.Tc.Solver.Monad.html#runTcS" class="link">Source</a> <a href="#v:runTcS" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:runTcSDeriveds" class="def">runTcSDeriveds</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a -&gt; <a href="GHC-Tc-Types.html#t:TcM" title="GHC.Tc.Types">TcM</a> a <a href="src/GHC.Tc.Solver.Monad.html#runTcSDeriveds" class="link">Source</a> <a href="#v:runTcSDeriveds" class="selflink">#</a></p><div class="doc"><p>This variant of <code><a href="GHC-Tc-Solver-Monad.html#v:runTcS" title="GHC.Tc.Solver.Monad">runTcS</a></code> will keep solving, even when only Deriveds
 are left around. It also doesn't return any evidence, as callers won't
 need it.</p></div></div><div class="top"><p class="src"><a id="v:runTcSWithEvBinds" class="def">runTcSWithEvBinds</a> :: <a href="GHC-Tc-Types-Evidence.html#t:EvBindsVar" title="GHC.Tc.Types.Evidence">EvBindsVar</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a -&gt; <a href="GHC-Tc-Types.html#t:TcM" title="GHC.Tc.Types">TcM</a> a <a href="src/GHC.Tc.Solver.Monad.html#runTcSWithEvBinds" class="link">Source</a> <a href="#v:runTcSWithEvBinds" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:failTcS" class="def">failTcS</a> :: <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a <a href="src/GHC.Tc.Solver.Monad.html#failTcS" class="link">Source</a> <a href="#v:failTcS" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:warnTcS" class="def">warnTcS</a> :: <a href="GHC-Driver-Session.html#t:WarningFlag" title="GHC.Driver.Session">WarningFlag</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> () <a href="src/GHC.Tc.Solver.Monad.html#warnTcS" class="link">Source</a> <a href="#v:warnTcS" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:addErrTcS" class="def">addErrTcS</a> :: <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> () <a href="src/GHC.Tc.Solver.Monad.html#addErrTcS" class="link">Source</a> <a href="#v:addErrTcS" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:runTcSEqualities" class="def">runTcSEqualities</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a -&gt; <a href="GHC-Tc-Types.html#t:TcM" title="GHC.Tc.Types">TcM</a> a <a href="src/GHC.Tc.Solver.Monad.html#runTcSEqualities" class="link">Source</a> <a href="#v:runTcSEqualities" class="selflink">#</a></p><div class="doc"><p>This can deal only with equality constraints.</p></div></div><div class="top"><p class="src"><a id="v:nestTcS" class="def">nestTcS</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a <a href="src/GHC.Tc.Solver.Monad.html#nestTcS" class="link">Source</a> <a href="#v:nestTcS" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:nestImplicTcS" class="def">nestImplicTcS</a> :: <a href="GHC-Tc-Types-Evidence.html#t:EvBindsVar" title="GHC.Tc.Types.Evidence">EvBindsVar</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcLevel" title="GHC.Tc.Solver.Monad">TcLevel</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a <a href="src/GHC.Tc.Solver.Monad.html#nestImplicTcS" class="link">Source</a> <a href="#v:nestImplicTcS" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:setEvBindsTcS" class="def">setEvBindsTcS</a> :: <a href="GHC-Tc-Types-Evidence.html#t:EvBindsVar" title="GHC.Tc.Types.Evidence">EvBindsVar</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a <a href="src/GHC.Tc.Solver.Monad.html#setEvBindsTcS" class="link">Source</a> <a href="#v:setEvBindsTcS" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:emitImplicationTcS" class="def">emitImplicationTcS</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcLevel" title="GHC.Tc.Solver.Monad">TcLevel</a> -&gt; <a href="GHC-Tc-Types-Origin.html#t:SkolemInfo" title="GHC.Tc.Types.Origin">SkolemInfo</a> -&gt; [<a href="GHC-Types-Var.html#t:TcTyVar" title="GHC.Types.Var">TcTyVar</a>] -&gt; [<a href="GHC-Types-Var.html#t:EvVar" title="GHC.Types.Var">EvVar</a>] -&gt; <a href="GHC-Tc-Types-Constraint.html#t:Cts" title="GHC.Tc.Types.Constraint">Cts</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Types-Evidence.html#t:TcEvBinds" title="GHC.Tc.Types.Evidence">TcEvBinds</a> <a href="src/GHC.Tc.Solver.Monad.html#emitImplicationTcS" class="link">Source</a> <a href="#v:emitImplicationTcS" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:emitTvImplicationTcS" class="def">emitTvImplicationTcS</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcLevel" title="GHC.Tc.Solver.Monad">TcLevel</a> -&gt; <a href="GHC-Tc-Types-Origin.html#t:SkolemInfo" title="GHC.Tc.Types.Origin">SkolemInfo</a> -&gt; [<a href="GHC-Types-Var.html#t:TcTyVar" title="GHC.Types.Var">TcTyVar</a>] -&gt; <a href="GHC-Tc-Types-Constraint.html#t:Cts" title="GHC.Tc.Types.Constraint">Cts</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> () <a href="src/GHC.Tc.Solver.Monad.html#emitTvImplicationTcS" class="link">Source</a> <a href="#v:emitTvImplicationTcS" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:runTcPluginTcS" class="def">runTcPluginTcS</a> :: <a href="GHC-Tc-Types.html#t:TcPluginM" title="GHC.Tc.Types">TcPluginM</a> a -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a <a href="src/GHC.Tc.Solver.Monad.html#runTcPluginTcS" class="link">Source</a> <a href="#v:runTcPluginTcS" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:addUsedGRE" class="def">addUsedGRE</a> :: <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> -&gt; <a href="GHC-Types-Name-Reader.html#t:GlobalRdrElt" title="GHC.Types.Name.Reader">GlobalRdrElt</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> () <a href="src/GHC.Tc.Solver.Monad.html#addUsedGRE" class="link">Source</a> <a href="#v:addUsedGRE" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:addUsedGREs" class="def">addUsedGREs</a> :: [<a href="GHC-Types-Name-Reader.html#t:GlobalRdrElt" title="GHC.Types.Name.Reader">GlobalRdrElt</a>] -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> () <a href="src/GHC.Tc.Solver.Monad.html#addUsedGREs" class="link">Source</a> <a href="#v:addUsedGREs" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:keepAlive" class="def">keepAlive</a> :: <a href="GHC-Types-Name.html#t:Name" title="GHC.Types.Name">Name</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> () <a href="src/GHC.Tc.Solver.Monad.html#keepAlive" class="link">Source</a> <a href="#v:keepAlive" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:matchGlobalInst" class="def">matchGlobalInst</a> :: <a href="GHC-Driver-Session.html#t:DynFlags" title="GHC.Driver.Session">DynFlags</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> -&gt; <a href="GHC-Core-Class.html#t:Class" title="GHC.Core.Class">Class</a> -&gt; [<a href="GHC-Core-Type.html#t:Type" title="GHC.Core.Type">Type</a>] -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Solver-Monad.html#t:ClsInstResult" title="GHC.Tc.Solver.Monad">ClsInstResult</a> <a href="src/GHC.Tc.Solver.Monad.html#matchGlobalInst" class="link">Source</a> <a href="#v:matchGlobalInst" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ClsInstResult" class="def">ClsInstResult</a> <a href="src/GHC.Tc.Instance.Class.html#ClsInstResult" class="link">Source</a> <a href="#t:ClsInstResult" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:NoInstance" class="def">NoInstance</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:OneInst" class="def">OneInst</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:cir_new_theta" class="def">cir_new_theta</a> :: [<a href="GHC-Tc-Utils-TcType.html#t:TcPredType" title="GHC.Tc.Utils.TcType">TcPredType</a>]</dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:cir_mk_ev" class="def">cir_mk_ev</a> :: [<a href="GHC-Tc-Types-Evidence.html#t:EvExpr" title="GHC.Tc.Types.Evidence">EvExpr</a>] -&gt; <a href="GHC-Tc-Types-Evidence.html#t:EvTerm" title="GHC.Tc.Types.Evidence">EvTerm</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:cir_what" class="def">cir_what</a> :: <a href="GHC-Tc-Instance-Class.html#t:InstanceWhat" title="GHC.Tc.Instance.Class">InstanceWhat</a></dfn><div class="doc empty">&nbsp;</div></li></ul></div></td></tr><tr><td class="src"><a id="v:NotSure" class="def">NotSure</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:ClsInstResult">Instances</h4><details id="i:ClsInstResult" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:ClsInstResult:Outputable:1"></span> <a href="GHC-Utils-Outputable.html#t:Outputable" title="GHC.Utils.Outputable">Outputable</a> <a href="GHC-Tc-Solver-Monad.html#t:ClsInstResult" title="GHC.Tc.Solver.Monad">ClsInstResult</a></span> <a href="src/GHC.Tc.Instance.Class.html#line-104" class="link">Source</a> <a href="#t:ClsInstResult" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:ClsInstResult:Outputable:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Tc-Instance-Class.html">GHC.Tc.Instance.Class</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ppr">ppr</a> :: <a href="GHC-Tc-Solver-Monad.html#t:ClsInstResult" title="GHC.Tc.Solver.Monad">ClsInstResult</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#ppr" class="link">Source</a> <a href="#v:ppr" class="selflink">#</a></p><p class="src"><a href="#v:pprPrec">pprPrec</a> :: <a href="GHC-Prelude.html#t:Rational" title="GHC.Prelude">Rational</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:ClsInstResult" title="GHC.Tc.Solver.Monad">ClsInstResult</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#pprPrec" class="link">Source</a> <a href="#v:pprPrec" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:QCInst" class="def">QCInst</a> <a href="src/GHC.Tc.Types.Constraint.html#QCInst" class="link">Source</a> <a href="#t:QCInst" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:QCI" class="def">QCI</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:qci_ev" class="def">qci_ev</a> :: <a href="GHC-Tc-Types-Constraint.html#t:CtEvidence" title="GHC.Tc.Types.Constraint">CtEvidence</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:qci_tvs" class="def">qci_tvs</a> :: [<a href="GHC-Types-Var.html#t:TcTyVar" title="GHC.Types.Var">TcTyVar</a>]</dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:qci_pred" class="def">qci_pred</a> :: <a href="GHC-Tc-Utils-TcType.html#t:TcPredType" title="GHC.Tc.Utils.TcType">TcPredType</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:qci_pend_sc" class="def">qci_pend_sc</a> :: <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a></dfn><div class="doc empty">&nbsp;</div></li></ul></div></td></tr></table></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:QCInst">Instances</h4><details id="i:QCInst" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:QCInst:Outputable:1"></span> <a href="GHC-Utils-Outputable.html#t:Outputable" title="GHC.Utils.Outputable">Outputable</a> <a href="GHC-Tc-Solver-Monad.html#t:QCInst" title="GHC.Tc.Solver.Monad">QCInst</a></span> <a href="src/GHC.Tc.Types.Constraint.html#line-219" class="link">Source</a> <a href="#t:QCInst" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:QCInst:Outputable:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Tc-Types-Constraint.html">GHC.Tc.Types.Constraint</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ppr">ppr</a> :: <a href="GHC-Tc-Solver-Monad.html#t:QCInst" title="GHC.Tc.Solver.Monad">QCInst</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#ppr" class="link">Source</a> <a href="#v:ppr" class="selflink">#</a></p><p class="src"><a href="#v:pprPrec">pprPrec</a> :: <a href="GHC-Prelude.html#t:Rational" title="GHC.Prelude">Rational</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:QCInst" title="GHC.Tc.Solver.Monad">QCInst</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#pprPrec" class="link">Source</a> <a href="#v:pprPrec" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><a id="v:panicTcS" class="def">panicTcS</a> :: <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a <a href="src/GHC.Tc.Solver.Monad.html#panicTcS" class="link">Source</a> <a href="#v:panicTcS" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:traceTcS" class="def">traceTcS</a> :: <a href="GHC-Prelude.html#t:String" title="GHC.Prelude">String</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> () <a href="src/GHC.Tc.Solver.Monad.html#traceTcS" class="link">Source</a> <a href="#v:traceTcS" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:traceFireTcS" class="def">traceFireTcS</a> :: <a href="GHC-Tc-Types-Constraint.html#t:CtEvidence" title="GHC.Tc.Types.Constraint">CtEvidence</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> () <a href="src/GHC.Tc.Solver.Monad.html#traceFireTcS" class="link">Source</a> <a href="#v:traceFireTcS" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:bumpStepCountTcS" class="def">bumpStepCountTcS</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> () <a href="src/GHC.Tc.Solver.Monad.html#bumpStepCountTcS" class="link">Source</a> <a href="#v:bumpStepCountTcS" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:csTraceTcS" class="def">csTraceTcS</a> :: <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> () <a href="src/GHC.Tc.Solver.Monad.html#csTraceTcS" class="link">Source</a> <a href="#v:csTraceTcS" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:wrapErrTcS" class="def">wrapErrTcS</a> :: <a href="GHC-Tc-Types.html#t:TcM" title="GHC.Tc.Types">TcM</a> a -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a <a href="src/GHC.Tc.Solver.Monad.html#wrapErrTcS" class="link">Source</a> <a href="#v:wrapErrTcS" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:wrapWarnTcS" class="def">wrapWarnTcS</a> :: <a href="GHC-Tc-Types.html#t:TcM" title="GHC.Tc.Types">TcM</a> a -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a <a href="src/GHC.Tc.Solver.Monad.html#wrapWarnTcS" class="link">Source</a> <a href="#v:wrapWarnTcS" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:MaybeNew" class="def">MaybeNew</a> <a href="src/GHC.Tc.Solver.Monad.html#MaybeNew" class="link">Source</a> <a href="#t:MaybeNew" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Fresh" class="def">Fresh</a> <a href="GHC-Tc-Types-Constraint.html#t:CtEvidence" title="GHC.Tc.Types.Constraint">CtEvidence</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Cached" class="def">Cached</a> <a href="GHC-Tc-Types-Evidence.html#t:EvExpr" title="GHC.Tc.Types.Evidence">EvExpr</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div><div class="top"><p class="src"><a id="v:freshGoals" class="def">freshGoals</a> :: [<a href="GHC-Tc-Solver-Monad.html#t:MaybeNew" title="GHC.Tc.Solver.Monad">MaybeNew</a>] -&gt; [<a href="GHC-Tc-Types-Constraint.html#t:CtEvidence" title="GHC.Tc.Types.Constraint">CtEvidence</a>] <a href="src/GHC.Tc.Solver.Monad.html#freshGoals" class="link">Source</a> <a href="#v:freshGoals" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:isFresh" class="def">isFresh</a> :: <a href="GHC-Tc-Solver-Monad.html#t:MaybeNew" title="GHC.Tc.Solver.Monad">MaybeNew</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.Tc.Solver.Monad.html#isFresh" class="link">Source</a> <a href="#v:isFresh" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getEvExpr" class="def">getEvExpr</a> :: <a href="GHC-Tc-Solver-Monad.html#t:MaybeNew" title="GHC.Tc.Solver.Monad">MaybeNew</a> -&gt; <a href="GHC-Tc-Types-Evidence.html#t:EvExpr" title="GHC.Tc.Types.Evidence">EvExpr</a> <a href="src/GHC.Tc.Solver.Monad.html#getEvExpr" class="link">Source</a> <a href="#v:getEvExpr" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:newTcEvBinds" class="def">newTcEvBinds</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Types-Evidence.html#t:EvBindsVar" title="GHC.Tc.Types.Evidence">EvBindsVar</a> <a href="src/GHC.Tc.Solver.Monad.html#newTcEvBinds" class="link">Source</a> <a href="#v:newTcEvBinds" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:newNoTcEvBinds" class="def">newNoTcEvBinds</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Types-Evidence.html#t:EvBindsVar" title="GHC.Tc.Types.Evidence">EvBindsVar</a> <a href="src/GHC.Tc.Solver.Monad.html#newNoTcEvBinds" class="link">Source</a> <a href="#v:newNoTcEvBinds" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:newWantedEq" class="def">newWantedEq</a> :: <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a> -&gt; <a href="GHC-Core-TyCon.html#t:Role" title="GHC.Core.TyCon">Role</a> -&gt; <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a> -&gt; <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> (<a href="GHC-Tc-Types-Constraint.html#t:CtEvidence" title="GHC.Tc.Types.Constraint">CtEvidence</a>, <a href="GHC-Core-Coercion.html#t:Coercion" title="GHC.Core.Coercion">Coercion</a>) <a href="src/GHC.Tc.Solver.Monad.html#newWantedEq" class="link">Source</a> <a href="#v:newWantedEq" class="selflink">#</a></p><div class="doc"><p>Make a new equality CtEvidence</p></div></div><div class="top"><p class="src"><a id="v:newWantedEq_SI" class="def">newWantedEq_SI</a> :: <a href="GHC-Core-Coercion.html#t:BlockSubstFlag" title="GHC.Core.Coercion">BlockSubstFlag</a> -&gt; <a href="GHC-Tc-Types-Constraint.html#t:ShadowInfo" title="GHC.Tc.Types.Constraint">ShadowInfo</a> -&gt; <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a> -&gt; <a href="GHC-Core-TyCon.html#t:Role" title="GHC.Core.TyCon">Role</a> -&gt; <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a> -&gt; <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> (<a href="GHC-Tc-Types-Constraint.html#t:CtEvidence" title="GHC.Tc.Types.Constraint">CtEvidence</a>, <a href="GHC-Core-Coercion.html#t:Coercion" title="GHC.Core.Coercion">Coercion</a>) <a href="src/GHC.Tc.Solver.Monad.html#newWantedEq_SI" class="link">Source</a> <a href="#v:newWantedEq_SI" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:emitNewWantedEq" class="def">emitNewWantedEq</a> :: <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a> -&gt; <a href="GHC-Core-TyCon.html#t:Role" title="GHC.Core.TyCon">Role</a> -&gt; <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a> -&gt; <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Core-Coercion.html#t:Coercion" title="GHC.Core.Coercion">Coercion</a> <a href="src/GHC.Tc.Solver.Monad.html#emitNewWantedEq" class="link">Source</a> <a href="#v:emitNewWantedEq" class="selflink">#</a></p><div class="doc"><p>Emit a new Wanted equality into the work-list</p></div></div><div class="top"><p class="src"><a id="v:newWanted" class="def">newWanted</a> :: <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a> -&gt; <a href="GHC-Core-Type.html#t:PredType" title="GHC.Core.Type">PredType</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Solver-Monad.html#t:MaybeNew" title="GHC.Tc.Solver.Monad">MaybeNew</a> <a href="src/GHC.Tc.Solver.Monad.html#newWanted" class="link">Source</a> <a href="#v:newWanted" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:newWanted_SI" class="def">newWanted_SI</a> :: <a href="GHC-Tc-Types-Constraint.html#t:ShadowInfo" title="GHC.Tc.Types.Constraint">ShadowInfo</a> -&gt; <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a> -&gt; <a href="GHC-Core-Type.html#t:PredType" title="GHC.Core.Type">PredType</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Solver-Monad.html#t:MaybeNew" title="GHC.Tc.Solver.Monad">MaybeNew</a> <a href="src/GHC.Tc.Solver.Monad.html#newWanted_SI" class="link">Source</a> <a href="#v:newWanted_SI" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:newWantedEvVar" class="def">newWantedEvVar</a> :: <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a> -&gt; <a href="GHC-Tc-Utils-TcType.html#t:TcPredType" title="GHC.Tc.Utils.TcType">TcPredType</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Solver-Monad.html#t:MaybeNew" title="GHC.Tc.Solver.Monad">MaybeNew</a> <a href="src/GHC.Tc.Solver.Monad.html#newWantedEvVar" class="link">Source</a> <a href="#v:newWantedEvVar" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:newWantedNC" class="def">newWantedNC</a> :: <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a> -&gt; <a href="GHC-Core-Type.html#t:PredType" title="GHC.Core.Type">PredType</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Types-Constraint.html#t:CtEvidence" title="GHC.Tc.Types.Constraint">CtEvidence</a> <a href="src/GHC.Tc.Solver.Monad.html#newWantedNC" class="link">Source</a> <a href="#v:newWantedNC" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:newWantedEvVarNC" class="def">newWantedEvVarNC</a> :: <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a> -&gt; <a href="GHC-Tc-Utils-TcType.html#t:TcPredType" title="GHC.Tc.Utils.TcType">TcPredType</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Types-Constraint.html#t:CtEvidence" title="GHC.Tc.Types.Constraint">CtEvidence</a> <a href="src/GHC.Tc.Solver.Monad.html#newWantedEvVarNC" class="link">Source</a> <a href="#v:newWantedEvVarNC" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:newDerivedNC" class="def">newDerivedNC</a> :: <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a> -&gt; <a href="GHC-Tc-Utils-TcType.html#t:TcPredType" title="GHC.Tc.Utils.TcType">TcPredType</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Types-Constraint.html#t:CtEvidence" title="GHC.Tc.Types.Constraint">CtEvidence</a> <a href="src/GHC.Tc.Solver.Monad.html#newDerivedNC" class="link">Source</a> <a href="#v:newDerivedNC" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:newBoundEvVarId" class="def">newBoundEvVarId</a> :: <a href="GHC-Tc-Utils-TcType.html#t:TcPredType" title="GHC.Tc.Utils.TcType">TcPredType</a> -&gt; <a href="GHC-Tc-Types-Evidence.html#t:EvTerm" title="GHC.Tc.Types.Evidence">EvTerm</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Types-Var.html#t:EvVar" title="GHC.Types.Var">EvVar</a> <a href="src/GHC.Tc.Solver.Monad.html#newBoundEvVarId" class="link">Source</a> <a href="#v:newBoundEvVarId" class="selflink">#</a></p><div class="doc"><p>Make a new <code><a href="GHC-Types-Var.html#t:Id" title="GHC.Types.Var">Id</a></code> of the given type, bound (in the monad's EvBinds) to the
 given term</p></div></div><div class="top"><p class="src"><a id="v:unifyTyVar" class="def">unifyTyVar</a> :: <a href="GHC-Types-Var.html#t:TcTyVar" title="GHC.Types.Var">TcTyVar</a> -&gt; <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> () <a href="src/GHC.Tc.Solver.Monad.html#unifyTyVar" class="link">Source</a> <a href="#v:unifyTyVar" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:unflattenFmv" class="def">unflattenFmv</a> :: <a href="GHC-Types-Var.html#t:TcTyVar" title="GHC.Types.Var">TcTyVar</a> -&gt; <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> () <a href="src/GHC.Tc.Solver.Monad.html#unflattenFmv" class="link">Source</a> <a href="#v:unflattenFmv" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:reportUnifications" class="def">reportUnifications</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> (<a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a>, a) <a href="src/GHC.Tc.Solver.Monad.html#reportUnifications" class="link">Source</a> <a href="#v:reportUnifications" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:setEvBind" class="def">setEvBind</a> :: <a href="GHC-Tc-Types-Evidence.html#t:EvBind" title="GHC.Tc.Types.Evidence">EvBind</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> () <a href="src/GHC.Tc.Solver.Monad.html#setEvBind" class="link">Source</a> <a href="#v:setEvBind" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:setWantedEq" class="def">setWantedEq</a> :: <a href="GHC-Tc-Types-Constraint.html#t:TcEvDest" title="GHC.Tc.Types.Constraint">TcEvDest</a> -&gt; <a href="GHC-Core-Coercion.html#t:Coercion" title="GHC.Core.Coercion">Coercion</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> () <a href="src/GHC.Tc.Solver.Monad.html#setWantedEq" class="link">Source</a> <a href="#v:setWantedEq" class="selflink">#</a></p><div class="doc"><p>Equalities only</p></div></div><div class="top"><p class="src"><a id="v:setWantedEvTerm" class="def">setWantedEvTerm</a> :: <a href="GHC-Tc-Types-Constraint.html#t:TcEvDest" title="GHC.Tc.Types.Constraint">TcEvDest</a> -&gt; <a href="GHC-Tc-Types-Evidence.html#t:EvTerm" title="GHC.Tc.Types.Evidence">EvTerm</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> () <a href="src/GHC.Tc.Solver.Monad.html#setWantedEvTerm" class="link">Source</a> <a href="#v:setWantedEvTerm" class="selflink">#</a></p><div class="doc"><p>Good for both equalities and non-equalities</p></div></div><div class="top"><p class="src"><a id="v:setEvBindIfWanted" class="def">setEvBindIfWanted</a> :: <a href="GHC-Tc-Types-Constraint.html#t:CtEvidence" title="GHC.Tc.Types.Constraint">CtEvidence</a> -&gt; <a href="GHC-Tc-Types-Evidence.html#t:EvTerm" title="GHC.Tc.Types.Evidence">EvTerm</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> () <a href="src/GHC.Tc.Solver.Monad.html#setEvBindIfWanted" class="link">Source</a> <a href="#v:setEvBindIfWanted" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:newEvVar" class="def">newEvVar</a> :: <a href="GHC-Tc-Utils-TcType.html#t:TcPredType" title="GHC.Tc.Utils.TcType">TcPredType</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Types-Var.html#t:EvVar" title="GHC.Types.Var">EvVar</a> <a href="src/GHC.Tc.Solver.Monad.html#newEvVar" class="link">Source</a> <a href="#v:newEvVar" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:newGivenEvVar" class="def">newGivenEvVar</a> :: <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a> -&gt; (<a href="GHC-Tc-Utils-TcType.html#t:TcPredType" title="GHC.Tc.Utils.TcType">TcPredType</a>, <a href="GHC-Tc-Types-Evidence.html#t:EvTerm" title="GHC.Tc.Types.Evidence">EvTerm</a>) -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Types-Constraint.html#t:CtEvidence" title="GHC.Tc.Types.Constraint">CtEvidence</a> <a href="src/GHC.Tc.Solver.Monad.html#newGivenEvVar" class="link">Source</a> <a href="#v:newGivenEvVar" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:newGivenEvVars" class="def">newGivenEvVars</a> :: <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a> -&gt; [(<a href="GHC-Tc-Utils-TcType.html#t:TcPredType" title="GHC.Tc.Utils.TcType">TcPredType</a>, <a href="GHC-Tc-Types-Evidence.html#t:EvTerm" title="GHC.Tc.Types.Evidence">EvTerm</a>)] -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> [<a href="GHC-Tc-Types-Constraint.html#t:CtEvidence" title="GHC.Tc.Types.Constraint">CtEvidence</a>] <a href="src/GHC.Tc.Solver.Monad.html#newGivenEvVars" class="link">Source</a> <a href="#v:newGivenEvVars" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:emitNewDeriveds" class="def">emitNewDeriveds</a> :: <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a> -&gt; [<a href="GHC-Tc-Utils-TcType.html#t:TcPredType" title="GHC.Tc.Utils.TcType">TcPredType</a>] -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> () <a href="src/GHC.Tc.Solver.Monad.html#emitNewDeriveds" class="link">Source</a> <a href="#v:emitNewDeriveds" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:emitNewDerivedEq" class="def">emitNewDerivedEq</a> :: <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a> -&gt; <a href="GHC-Core-TyCon.html#t:Role" title="GHC.Core.TyCon">Role</a> -&gt; <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a> -&gt; <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> () <a href="src/GHC.Tc.Solver.Monad.html#emitNewDerivedEq" class="link">Source</a> <a href="#v:emitNewDerivedEq" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:checkReductionDepth" class="def">checkReductionDepth</a> <a href="src/GHC.Tc.Solver.Monad.html#checkReductionDepth" class="link">Source</a> <a href="#v:checkReductionDepth" class="selflink">#</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">-&gt; <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a></td><td class="doc"><p>type being reduced</p></td></tr><tr><td class="src">-&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> ()</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="doc"><p>Checks if the depth of the given location is too much. Fails if
 it's too big, with an appropriate error message.</p></div></div><div class="top"><p class="src"><a id="v:getSolvedDicts" class="def">getSolvedDicts</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> (<a href="GHC-Tc-Solver-Monad.html#t:DictMap" title="GHC.Tc.Solver.Monad">DictMap</a> <a href="GHC-Tc-Types-Constraint.html#t:CtEvidence" title="GHC.Tc.Types.Constraint">CtEvidence</a>) <a href="src/GHC.Tc.Solver.Monad.html#getSolvedDicts" class="link">Source</a> <a href="#v:getSolvedDicts" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:setSolvedDicts" class="def">setSolvedDicts</a> :: <a href="GHC-Tc-Solver-Monad.html#t:DictMap" title="GHC.Tc.Solver.Monad">DictMap</a> <a href="GHC-Tc-Types-Constraint.html#t:CtEvidence" title="GHC.Tc.Types.Constraint">CtEvidence</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> () <a href="src/GHC.Tc.Solver.Monad.html#setSolvedDicts" class="link">Source</a> <a href="#v:setSolvedDicts" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getInstEnvs" class="def">getInstEnvs</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Core-InstEnv.html#t:InstEnvs" title="GHC.Core.InstEnv">InstEnvs</a> <a href="src/GHC.Tc.Solver.Monad.html#getInstEnvs" class="link">Source</a> <a href="#v:getInstEnvs" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getFamInstEnvs" class="def">getFamInstEnvs</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> (<a href="GHC-Core-FamInstEnv.html#t:FamInstEnv" title="GHC.Core.FamInstEnv">FamInstEnv</a>, <a href="GHC-Core-FamInstEnv.html#t:FamInstEnv" title="GHC.Core.FamInstEnv">FamInstEnv</a>) <a href="src/GHC.Tc.Solver.Monad.html#getFamInstEnvs" class="link">Source</a> <a href="#v:getFamInstEnvs" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getTopEnv" class="def">getTopEnv</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Driver-Types.html#t:HscEnv" title="GHC.Driver.Types">HscEnv</a> <a href="src/GHC.Tc.Solver.Monad.html#getTopEnv" class="link">Source</a> <a href="#v:getTopEnv" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getGblEnv" class="def">getGblEnv</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Types.html#t:TcGblEnv" title="GHC.Tc.Types">TcGblEnv</a> <a href="src/GHC.Tc.Solver.Monad.html#getGblEnv" class="link">Source</a> <a href="#v:getGblEnv" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getLclEnv" class="def">getLclEnv</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Types.html#t:TcLclEnv" title="GHC.Tc.Types">TcLclEnv</a> <a href="src/GHC.Tc.Solver.Monad.html#getLclEnv" class="link">Source</a> <a href="#v:getLclEnv" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getTcEvBindsVar" class="def">getTcEvBindsVar</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Types-Evidence.html#t:EvBindsVar" title="GHC.Tc.Types.Evidence">EvBindsVar</a> <a href="src/GHC.Tc.Solver.Monad.html#getTcEvBindsVar" class="link">Source</a> <a href="#v:getTcEvBindsVar" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getTcLevel" class="def">getTcLevel</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Solver-Monad.html#t:TcLevel" title="GHC.Tc.Solver.Monad">TcLevel</a> <a href="src/GHC.Tc.Solver.Monad.html#getTcLevel" class="link">Source</a> <a href="#v:getTcLevel" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getTcEvTyCoVars" class="def">getTcEvTyCoVars</a> :: <a href="GHC-Tc-Types-Evidence.html#t:EvBindsVar" title="GHC.Tc.Types.Evidence">EvBindsVar</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Types-Var-Set.html#t:TyCoVarSet" title="GHC.Types.Var.Set">TyCoVarSet</a> <a href="src/GHC.Tc.Solver.Monad.html#getTcEvTyCoVars" class="link">Source</a> <a href="#v:getTcEvTyCoVars" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getTcEvBindsMap" class="def">getTcEvBindsMap</a> :: <a href="GHC-Tc-Types-Evidence.html#t:EvBindsVar" title="GHC.Tc.Types.Evidence">EvBindsVar</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Types-Evidence.html#t:EvBindMap" title="GHC.Tc.Types.Evidence">EvBindMap</a> <a href="src/GHC.Tc.Solver.Monad.html#getTcEvBindsMap" class="link">Source</a> <a href="#v:getTcEvBindsMap" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:setTcEvBindsMap" class="def">setTcEvBindsMap</a> :: <a href="GHC-Tc-Types-Evidence.html#t:EvBindsVar" title="GHC.Tc.Types.Evidence">EvBindsVar</a> -&gt; <a href="GHC-Tc-Types-Evidence.html#t:EvBindMap" title="GHC.Tc.Types.Evidence">EvBindMap</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> () <a href="src/GHC.Tc.Solver.Monad.html#setTcEvBindsMap" class="link">Source</a> <a href="#v:setTcEvBindsMap" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:tcLookupClass" class="def">tcLookupClass</a> :: <a href="GHC-Types-Name.html#t:Name" title="GHC.Types.Name">Name</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Core-Class.html#t:Class" title="GHC.Core.Class">Class</a> <a href="src/GHC.Tc.Solver.Monad.html#tcLookupClass" class="link">Source</a> <a href="#v:tcLookupClass" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:tcLookupId" class="def">tcLookupId</a> :: <a href="GHC-Types-Name.html#t:Name" title="GHC.Types.Name">Name</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Types-Var.html#t:Id" title="GHC.Types.Var">Id</a> <a href="src/GHC.Tc.Solver.Monad.html#tcLookupId" class="link">Source</a> <a href="#v:tcLookupId" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:InertSet" class="def">InertSet</a> <a href="src/GHC.Tc.Solver.Monad.html#InertSet" class="link">Source</a> <a href="#t:InertSet" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:IS" class="def">IS</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:inert_cans" class="def">inert_cans</a> :: <a href="GHC-Tc-Solver-Monad.html#t:InertCans" title="GHC.Tc.Solver.Monad">InertCans</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:inert_fsks" class="def">inert_fsks</a> :: [(<a href="GHC-Types-Var.html#t:TcTyVar" title="GHC.Types.Var">TcTyVar</a>, <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a>)]</dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:inert_flat_cache" class="def">inert_flat_cache</a> :: ExactFunEqMap (<a href="GHC-Tc-Types-Evidence.html#t:TcCoercion" title="GHC.Tc.Types.Evidence">TcCoercion</a>, <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a>, <a href="GHC-Tc-Types-Constraint.html#t:CtFlavour" title="GHC.Tc.Types.Constraint">CtFlavour</a>)</dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:inert_solved_dicts" class="def">inert_solved_dicts</a> :: <a href="GHC-Tc-Solver-Monad.html#t:DictMap" title="GHC.Tc.Solver.Monad">DictMap</a> <a href="GHC-Tc-Types-Constraint.html#t:CtEvidence" title="GHC.Tc.Types.Constraint">CtEvidence</a></dfn><div class="doc empty">&nbsp;</div></li></ul></div></td></tr></table></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:InertSet">Instances</h4><details id="i:InertSet" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:InertSet:Outputable:1"></span> <a href="GHC-Utils-Outputable.html#t:Outputable" title="GHC.Utils.Outputable">Outputable</a> <a href="GHC-Tc-Solver-Monad.html#t:InertSet" title="GHC.Tc.Solver.Monad">InertSet</a></span> <a href="src/GHC.Tc.Solver.Monad.html#line-442" class="link">Source</a> <a href="#t:InertSet" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:InertSet:Outputable:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Tc-Solver-Monad.html">GHC.Tc.Solver.Monad</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ppr">ppr</a> :: <a href="GHC-Tc-Solver-Monad.html#t:InertSet" title="GHC.Tc.Solver.Monad">InertSet</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#ppr" class="link">Source</a> <a href="#v:ppr" class="selflink">#</a></p><p class="src"><a href="#v:pprPrec">pprPrec</a> :: <a href="GHC-Prelude.html#t:Rational" title="GHC.Prelude">Rational</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:InertSet" title="GHC.Tc.Solver.Monad">InertSet</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#pprPrec" class="link">Source</a> <a href="#v:pprPrec" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:InertCans" class="def">InertCans</a> <a href="src/GHC.Tc.Solver.Monad.html#InertCans" class="link">Source</a> <a href="#t:InertCans" class="selflink">#</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:IC" class="def">IC</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:inert_eqs" class="def">inert_eqs</a> :: InertEqs</dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:inert_funeqs" class="def">inert_funeqs</a> :: FunEqMap <a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:inert_dicts" class="def">inert_dicts</a> :: <a href="GHC-Tc-Solver-Monad.html#t:DictMap" title="GHC.Tc.Solver.Monad">DictMap</a> <a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:inert_insts" class="def">inert_insts</a> :: [<a href="GHC-Tc-Solver-Monad.html#t:QCInst" title="GHC.Tc.Solver.Monad">QCInst</a>]</dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:inert_safehask" class="def">inert_safehask</a> :: <a href="GHC-Tc-Solver-Monad.html#t:DictMap" title="GHC.Tc.Solver.Monad">DictMap</a> <a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a></dfn><div class="doc"><p>See Note [Safe Haskell Overlapping Instances Implementation]
 in <a href="GHC-Tc-Solver.html">GHC.Tc.Solver</a></p></div></li><li><dfn class="src"><a id="v:inert_irreds" class="def">inert_irreds</a> :: <a href="GHC-Tc-Types-Constraint.html#t:Cts" title="GHC.Tc.Types.Constraint">Cts</a></dfn><div class="doc empty">&nbsp;</div></li><li><dfn class="src"><a id="v:inert_count" class="def">inert_count</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a></dfn><div class="doc empty">&nbsp;</div></li></ul></div></td></tr></table></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:InertCans">Instances</h4><details id="i:InertCans" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:InertCans:Outputable:1"></span> <a href="GHC-Utils-Outputable.html#t:Outputable" title="GHC.Utils.Outputable">Outputable</a> <a href="GHC-Tc-Solver-Monad.html#t:InertCans" title="GHC.Tc.Solver.Monad">InertCans</a></span> <a href="src/GHC.Tc.Solver.Monad.html#line-1076" class="link">Source</a> <a href="#t:InertCans" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:InertCans:Outputable:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Tc-Solver-Monad.html">GHC.Tc.Solver.Monad</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ppr">ppr</a> :: <a href="GHC-Tc-Solver-Monad.html#t:InertCans" title="GHC.Tc.Solver.Monad">InertCans</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#ppr" class="link">Source</a> <a href="#v:ppr" class="selflink">#</a></p><p class="src"><a href="#v:pprPrec">pprPrec</a> :: <a href="GHC-Prelude.html#t:Rational" title="GHC.Prelude">Rational</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:InertCans" title="GHC.Tc.Solver.Monad">InertCans</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#pprPrec" class="link">Source</a> <a href="#v:pprPrec" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><a id="v:updInertTcS" class="def">updInertTcS</a> :: (<a href="GHC-Tc-Solver-Monad.html#t:InertSet" title="GHC.Tc.Solver.Monad">InertSet</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:InertSet" title="GHC.Tc.Solver.Monad">InertSet</a>) -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> () <a href="src/GHC.Tc.Solver.Monad.html#updInertTcS" class="link">Source</a> <a href="#v:updInertTcS" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:updInertCans" class="def">updInertCans</a> :: (<a href="GHC-Tc-Solver-Monad.html#t:InertCans" title="GHC.Tc.Solver.Monad">InertCans</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:InertCans" title="GHC.Tc.Solver.Monad">InertCans</a>) -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> () <a href="src/GHC.Tc.Solver.Monad.html#updInertCans" class="link">Source</a> <a href="#v:updInertCans" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:updInertDicts" class="def">updInertDicts</a> :: (<a href="GHC-Tc-Solver-Monad.html#t:DictMap" title="GHC.Tc.Solver.Monad">DictMap</a> <a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:DictMap" title="GHC.Tc.Solver.Monad">DictMap</a> <a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a>) -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> () <a href="src/GHC.Tc.Solver.Monad.html#updInertDicts" class="link">Source</a> <a href="#v:updInertDicts" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:updInertIrreds" class="def">updInertIrreds</a> :: (<a href="GHC-Tc-Types-Constraint.html#t:Cts" title="GHC.Tc.Types.Constraint">Cts</a> -&gt; <a href="GHC-Tc-Types-Constraint.html#t:Cts" title="GHC.Tc.Types.Constraint">Cts</a>) -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> () <a href="src/GHC.Tc.Solver.Monad.html#updInertIrreds" class="link">Source</a> <a href="#v:updInertIrreds" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getNoGivenEqs" class="def">getNoGivenEqs</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcLevel" title="GHC.Tc.Solver.Monad">TcLevel</a> -&gt; [<a href="GHC-Types-Var.html#t:TcTyVar" title="GHC.Types.Var">TcTyVar</a>] -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> (<a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a>, <a href="GHC-Tc-Types-Constraint.html#t:Cts" title="GHC.Tc.Types.Constraint">Cts</a>) <a href="src/GHC.Tc.Solver.Monad.html#getNoGivenEqs" class="link">Source</a> <a href="#v:getNoGivenEqs" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:setInertCans" class="def">setInertCans</a> :: <a href="GHC-Tc-Solver-Monad.html#t:InertCans" title="GHC.Tc.Solver.Monad">InertCans</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> () <a href="src/GHC.Tc.Solver.Monad.html#setInertCans" class="link">Source</a> <a href="#v:setInertCans" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getInertEqs" class="def">getInertEqs</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> (<a href="GHC-Types-Var-Env.html#t:DTyVarEnv" title="GHC.Types.Var.Env">DTyVarEnv</a> <a href="GHC-Tc-Solver-Monad.html#t:EqualCtList" title="GHC.Tc.Solver.Monad">EqualCtList</a>) <a href="src/GHC.Tc.Solver.Monad.html#getInertEqs" class="link">Source</a> <a href="#v:getInertEqs" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getInertCans" class="def">getInertCans</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Solver-Monad.html#t:InertCans" title="GHC.Tc.Solver.Monad">InertCans</a> <a href="src/GHC.Tc.Solver.Monad.html#getInertCans" class="link">Source</a> <a href="#v:getInertCans" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getInertGivens" class="def">getInertGivens</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> [<a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a>] <a href="src/GHC.Tc.Solver.Monad.html#getInertGivens" class="link">Source</a> <a href="#v:getInertGivens" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getInertInsols" class="def">getInertInsols</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Types-Constraint.html#t:Cts" title="GHC.Tc.Types.Constraint">Cts</a> <a href="src/GHC.Tc.Solver.Monad.html#getInertInsols" class="link">Source</a> <a href="#v:getInertInsols" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getTcSInerts" class="def">getTcSInerts</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Solver-Monad.html#t:InertSet" title="GHC.Tc.Solver.Monad">InertSet</a> <a href="src/GHC.Tc.Solver.Monad.html#getTcSInerts" class="link">Source</a> <a href="#v:getTcSInerts" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:setTcSInerts" class="def">setTcSInerts</a> :: <a href="GHC-Tc-Solver-Monad.html#t:InertSet" title="GHC.Tc.Solver.Monad">InertSet</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> () <a href="src/GHC.Tc.Solver.Monad.html#setTcSInerts" class="link">Source</a> <a href="#v:setTcSInerts" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:matchableGivens" class="def">matchableGivens</a> :: <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a> -&gt; <a href="GHC-Core-Type.html#t:PredType" title="GHC.Core.Type">PredType</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:InertSet" title="GHC.Tc.Solver.Monad">InertSet</a> -&gt; <a href="GHC-Tc-Types-Constraint.html#t:Cts" title="GHC.Tc.Types.Constraint">Cts</a> <a href="src/GHC.Tc.Solver.Monad.html#matchableGivens" class="link">Source</a> <a href="#v:matchableGivens" class="selflink">#</a></p><div class="doc"><p>Returns Given constraints that might,
 potentially, match the given pred. This is used when checking to see if a
 Given might overlap with an instance. See Note [Instance and Given overlap]
 in <a href="GHC-Tc-Solver-Interact.html">GHC.Tc.Solver.Interact</a></p></div></div><div class="top"><p class="src"><a id="v:prohibitedSuperClassSolve" class="def">prohibitedSuperClassSolve</a> :: <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a> -&gt; <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.Tc.Solver.Monad.html#prohibitedSuperClassSolve" class="link">Source</a> <a href="#v:prohibitedSuperClassSolve" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:mightMatchLater" class="def">mightMatchLater</a> :: <a href="GHC-Tc-Utils-TcType.html#t:TcPredType" title="GHC.Tc.Utils.TcType">TcPredType</a> -&gt; <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a> -&gt; <a href="GHC-Tc-Utils-TcType.html#t:TcPredType" title="GHC.Tc.Utils.TcType">TcPredType</a> -&gt; <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.Tc.Solver.Monad.html#mightMatchLater" class="link">Source</a> <a href="#v:mightMatchLater" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getUnsolvedInerts" class="def">getUnsolvedInerts</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> (<a href="GHC-Data-Bag.html#t:Bag" title="GHC.Data.Bag">Bag</a> <a href="GHC-Tc-Types-Constraint.html#t:Implication" title="GHC.Tc.Types.Constraint">Implication</a>, <a href="GHC-Tc-Types-Constraint.html#t:Cts" title="GHC.Tc.Types.Constraint">Cts</a>, <a href="GHC-Tc-Types-Constraint.html#t:Cts" title="GHC.Tc.Types.Constraint">Cts</a>, <a href="GHC-Tc-Types-Constraint.html#t:Cts" title="GHC.Tc.Types.Constraint">Cts</a>) <a href="src/GHC.Tc.Solver.Monad.html#getUnsolvedInerts" class="link">Source</a> <a href="#v:getUnsolvedInerts" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:removeInertCts" class="def">removeInertCts</a> :: [<a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a>] -&gt; <a href="GHC-Tc-Solver-Monad.html#t:InertCans" title="GHC.Tc.Solver.Monad">InertCans</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:InertCans" title="GHC.Tc.Solver.Monad">InertCans</a> <a href="src/GHC.Tc.Solver.Monad.html#removeInertCts" class="link">Source</a> <a href="#v:removeInertCts" class="selflink">#</a></p><div class="doc"><p>Remove inert constraints from the <code><a href="GHC-Tc-Solver-Monad.html#t:InertCans" title="GHC.Tc.Solver.Monad">InertCans</a></code>, for use when a
 typechecker plugin wishes to discard a given.</p></div></div><div class="top"><p class="src"><a id="v:getPendingGivenScs" class="def">getPendingGivenScs</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> [<a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a>] <a href="src/GHC.Tc.Solver.Monad.html#getPendingGivenScs" class="link">Source</a> <a href="#v:getPendingGivenScs" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:addInertCan" class="def">addInertCan</a> :: <a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> () <a href="src/GHC.Tc.Solver.Monad.html#addInertCan" class="link">Source</a> <a href="#v:addInertCan" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:insertFunEq" class="def">insertFunEq</a> :: FunEqMap a -&gt; <a href="GHC-Core-TyCon.html#t:TyCon" title="GHC.Core.TyCon">TyCon</a> -&gt; [<a href="GHC-Core-Type.html#t:Type" title="GHC.Core.Type">Type</a>] -&gt; a -&gt; FunEqMap a <a href="src/GHC.Tc.Solver.Monad.html#insertFunEq" class="link">Source</a> <a href="#v:insertFunEq" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:addInertForAll" class="def">addInertForAll</a> :: <a href="GHC-Tc-Solver-Monad.html#t:QCInst" title="GHC.Tc.Solver.Monad">QCInst</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> () <a href="src/GHC.Tc.Solver.Monad.html#addInertForAll" class="link">Source</a> <a href="#v:addInertForAll" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:emitWorkNC" class="def">emitWorkNC</a> :: [<a href="GHC-Tc-Types-Constraint.html#t:CtEvidence" title="GHC.Tc.Types.Constraint">CtEvidence</a>] -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> () <a href="src/GHC.Tc.Solver.Monad.html#emitWorkNC" class="link">Source</a> <a href="#v:emitWorkNC" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:emitWork" class="def">emitWork</a> :: [<a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a>] -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> () <a href="src/GHC.Tc.Solver.Monad.html#emitWork" class="link">Source</a> <a href="#v:emitWork" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:isImprovable" class="def">isImprovable</a> :: <a href="GHC-Tc-Types-Constraint.html#t:CtEvidence" title="GHC.Tc.Types.Constraint">CtEvidence</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.Tc.Solver.Monad.html#isImprovable" class="link">Source</a> <a href="#v:isImprovable" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:kickOutAfterUnification" class="def">kickOutAfterUnification</a> :: <a href="GHC-Types-Var.html#t:TcTyVar" title="GHC.Types.Var">TcTyVar</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> <a href="src/GHC.Tc.Solver.Monad.html#kickOutAfterUnification" class="link">Source</a> <a href="#v:kickOutAfterUnification" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:addInertSafehask" class="def">addInertSafehask</a> :: <a href="GHC-Tc-Solver-Monad.html#t:InertCans" title="GHC.Tc.Solver.Monad">InertCans</a> -&gt; <a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:InertCans" title="GHC.Tc.Solver.Monad">InertCans</a> <a href="src/GHC.Tc.Solver.Monad.html#addInertSafehask" class="link">Source</a> <a href="#v:addInertSafehask" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:insertSafeOverlapFailureTcS" class="def">insertSafeOverlapFailureTcS</a> :: <a href="GHC-Tc-Instance-Class.html#t:InstanceWhat" title="GHC.Tc.Instance.Class">InstanceWhat</a> -&gt; <a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> () <a href="src/GHC.Tc.Solver.Monad.html#insertSafeOverlapFailureTcS" class="link">Source</a> <a href="#v:insertSafeOverlapFailureTcS" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:updInertSafehask" class="def">updInertSafehask</a> :: (<a href="GHC-Tc-Solver-Monad.html#t:DictMap" title="GHC.Tc.Solver.Monad">DictMap</a> <a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:DictMap" title="GHC.Tc.Solver.Monad">DictMap</a> <a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a>) -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> () <a href="src/GHC.Tc.Solver.Monad.html#updInertSafehask" class="link">Source</a> <a href="#v:updInertSafehask" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getSafeOverlapFailures" class="def">getSafeOverlapFailures</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Types-Constraint.html#t:Cts" title="GHC.Tc.Types.Constraint">Cts</a> <a href="src/GHC.Tc.Solver.Monad.html#getSafeOverlapFailures" class="link">Source</a> <a href="#v:getSafeOverlapFailures" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:DictMap" class="def">DictMap</a> a = TcAppMap a <a href="src/GHC.Tc.Solver.Monad.html#DictMap" class="link">Source</a> <a href="#t:DictMap" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:emptyDictMap" class="def">emptyDictMap</a> :: <a href="GHC-Tc-Solver-Monad.html#t:DictMap" title="GHC.Tc.Solver.Monad">DictMap</a> a <a href="src/GHC.Tc.Solver.Monad.html#emptyDictMap" class="link">Source</a> <a href="#v:emptyDictMap" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:lookupInertDict" class="def">lookupInertDict</a> :: <a href="GHC-Tc-Solver-Monad.html#t:InertCans" title="GHC.Tc.Solver.Monad">InertCans</a> -&gt; <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a> -&gt; <a href="GHC-Core-Class.html#t:Class" title="GHC.Core.Class">Class</a> -&gt; [<a href="GHC-Core-Type.html#t:Type" title="GHC.Core.Type">Type</a>] -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a> <a href="src/GHC.Tc.Solver.Monad.html#lookupInertDict" class="link">Source</a> <a href="#v:lookupInertDict" class="selflink">#</a></p><div class="doc"><p>Look up a dictionary inert. NB: the returned <code><a href="GHC-Tc-Types-Constraint.html#t:CtEvidence" title="GHC.Tc.Types.Constraint">CtEvidence</a></code> might not
 match the input exactly. Note [Use loose types in inert set].</p></div></div><div class="top"><p class="src"><a id="v:findDictsByClass" class="def">findDictsByClass</a> :: <a href="GHC-Tc-Solver-Monad.html#t:DictMap" title="GHC.Tc.Solver.Monad">DictMap</a> a -&gt; <a href="GHC-Core-Class.html#t:Class" title="GHC.Core.Class">Class</a> -&gt; <a href="GHC-Data-Bag.html#t:Bag" title="GHC.Data.Bag">Bag</a> a <a href="src/GHC.Tc.Solver.Monad.html#findDictsByClass" class="link">Source</a> <a href="#v:findDictsByClass" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:addDict" class="def">addDict</a> :: <a href="GHC-Tc-Solver-Monad.html#t:DictMap" title="GHC.Tc.Solver.Monad">DictMap</a> a -&gt; <a href="GHC-Core-Class.html#t:Class" title="GHC.Core.Class">Class</a> -&gt; [<a href="GHC-Core-Type.html#t:Type" title="GHC.Core.Type">Type</a>] -&gt; a -&gt; <a href="GHC-Tc-Solver-Monad.html#t:DictMap" title="GHC.Tc.Solver.Monad">DictMap</a> a <a href="src/GHC.Tc.Solver.Monad.html#addDict" class="link">Source</a> <a href="#v:addDict" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:addDictsByClass" class="def">addDictsByClass</a> :: <a href="GHC-Tc-Solver-Monad.html#t:DictMap" title="GHC.Tc.Solver.Monad">DictMap</a> <a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a> -&gt; <a href="GHC-Core-Class.html#t:Class" title="GHC.Core.Class">Class</a> -&gt; <a href="GHC-Data-Bag.html#t:Bag" title="GHC.Data.Bag">Bag</a> <a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:DictMap" title="GHC.Tc.Solver.Monad">DictMap</a> <a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a> <a href="src/GHC.Tc.Solver.Monad.html#addDictsByClass" class="link">Source</a> <a href="#v:addDictsByClass" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:delDict" class="def">delDict</a> :: <a href="GHC-Tc-Solver-Monad.html#t:DictMap" title="GHC.Tc.Solver.Monad">DictMap</a> a -&gt; <a href="GHC-Core-Class.html#t:Class" title="GHC.Core.Class">Class</a> -&gt; [<a href="GHC-Core-Type.html#t:Type" title="GHC.Core.Type">Type</a>] -&gt; <a href="GHC-Tc-Solver-Monad.html#t:DictMap" title="GHC.Tc.Solver.Monad">DictMap</a> a <a href="src/GHC.Tc.Solver.Monad.html#delDict" class="link">Source</a> <a href="#v:delDict" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:foldDicts" class="def">foldDicts</a> :: (a -&gt; b -&gt; b) -&gt; <a href="GHC-Tc-Solver-Monad.html#t:DictMap" title="GHC.Tc.Solver.Monad">DictMap</a> a -&gt; b -&gt; b <a href="src/GHC.Tc.Solver.Monad.html#foldDicts" class="link">Source</a> <a href="#v:foldDicts" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:filterDicts" class="def">filterDicts</a> :: (<a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a>) -&gt; <a href="GHC-Tc-Solver-Monad.html#t:DictMap" title="GHC.Tc.Solver.Monad">DictMap</a> <a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:DictMap" title="GHC.Tc.Solver.Monad">DictMap</a> <a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a> <a href="src/GHC.Tc.Solver.Monad.html#filterDicts" class="link">Source</a> <a href="#v:filterDicts" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:findDict" class="def">findDict</a> :: <a href="GHC-Tc-Solver-Monad.html#t:DictMap" title="GHC.Tc.Solver.Monad">DictMap</a> a -&gt; <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a> -&gt; <a href="GHC-Core-Class.html#t:Class" title="GHC.Core.Class">Class</a> -&gt; [<a href="GHC-Core-Type.html#t:Type" title="GHC.Core.Type">Type</a>] -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> a <a href="src/GHC.Tc.Solver.Monad.html#findDict" class="link">Source</a> <a href="#v:findDict" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a id="t:EqualCtList" class="def">EqualCtList</a> = [<a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a>] <a href="src/GHC.Tc.Solver.Monad.html#EqualCtList" class="link">Source</a> <a href="#t:EqualCtList" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:findTyEqs" class="def">findTyEqs</a> :: <a href="GHC-Tc-Solver-Monad.html#t:InertCans" title="GHC.Tc.Solver.Monad">InertCans</a> -&gt; <a href="GHC-Types-Var.html#t:TyVar" title="GHC.Types.Var">TyVar</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:EqualCtList" title="GHC.Tc.Solver.Monad">EqualCtList</a> <a href="src/GHC.Tc.Solver.Monad.html#findTyEqs" class="link">Source</a> <a href="#v:findTyEqs" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:foldTyEqs" class="def">foldTyEqs</a> :: (<a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a> -&gt; b -&gt; b) -&gt; InertEqs -&gt; b -&gt; b <a href="src/GHC.Tc.Solver.Monad.html#foldTyEqs" class="link">Source</a> <a href="#v:foldTyEqs" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:isInInertEqs" class="def">isInInertEqs</a> :: <a href="GHC-Types-Var-Env.html#t:DTyVarEnv" title="GHC.Types.Var.Env">DTyVarEnv</a> <a href="GHC-Tc-Solver-Monad.html#t:EqualCtList" title="GHC.Tc.Solver.Monad">EqualCtList</a> -&gt; <a href="GHC-Types-Var.html#t:TcTyVar" title="GHC.Types.Var">TcTyVar</a> -&gt; <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.Tc.Solver.Monad.html#isInInertEqs" class="link">Source</a> <a href="#v:isInInertEqs" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:lookupInertTyVar" class="def">lookupInertTyVar</a> :: InertEqs -&gt; <a href="GHC-Types-Var.html#t:TcTyVar" title="GHC.Types.Var">TcTyVar</a> -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a> <a href="src/GHC.Tc.Solver.Monad.html#lookupInertTyVar" class="link">Source</a> <a href="#v:lookupInertTyVar" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:addSolvedDict" class="def">addSolvedDict</a> :: <a href="GHC-Tc-Instance-Class.html#t:InstanceWhat" title="GHC.Tc.Instance.Class">InstanceWhat</a> -&gt; <a href="GHC-Tc-Types-Constraint.html#t:CtEvidence" title="GHC.Tc.Types.Constraint">CtEvidence</a> -&gt; <a href="GHC-Core-Class.html#t:Class" title="GHC.Core.Class">Class</a> -&gt; [<a href="GHC-Core-Type.html#t:Type" title="GHC.Core.Type">Type</a>] -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> () <a href="src/GHC.Tc.Solver.Monad.html#addSolvedDict" class="link">Source</a> <a href="#v:addSolvedDict" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:lookupSolvedDict" class="def">lookupSolvedDict</a> :: <a href="GHC-Tc-Solver-Monad.html#t:InertSet" title="GHC.Tc.Solver.Monad">InertSet</a> -&gt; <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a> -&gt; <a href="GHC-Core-Class.html#t:Class" title="GHC.Core.Class">Class</a> -&gt; [<a href="GHC-Core-Type.html#t:Type" title="GHC.Core.Type">Type</a>] -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Tc-Types-Constraint.html#t:CtEvidence" title="GHC.Tc.Types.Constraint">CtEvidence</a> <a href="src/GHC.Tc.Solver.Monad.html#lookupSolvedDict" class="link">Source</a> <a href="#v:lookupSolvedDict" class="selflink">#</a></p><div class="doc"><p>Look up a solved inert. NB: the returned <code><a href="GHC-Tc-Types-Constraint.html#t:CtEvidence" title="GHC.Tc.Types.Constraint">CtEvidence</a></code> might not
 match the input exactly. See Note [Use loose types in inert set].</p></div></div><div class="top"><p class="src"><a id="v:foldIrreds" class="def">foldIrreds</a> :: (<a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a> -&gt; b -&gt; b) -&gt; <a href="GHC-Tc-Types-Constraint.html#t:Cts" title="GHC.Tc.Types.Constraint">Cts</a> -&gt; b -&gt; b <a href="src/GHC.Tc.Solver.Monad.html#foldIrreds" class="link">Source</a> <a href="#v:foldIrreds" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:lookupFlatCache" class="def">lookupFlatCache</a> :: <a href="GHC-Core-TyCon.html#t:TyCon" title="GHC.Core.TyCon">TyCon</a> -&gt; [<a href="GHC-Core-Type.html#t:Type" title="GHC.Core.Type">Type</a>] -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> (<a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (<a href="GHC-Tc-Types-Evidence.html#t:TcCoercion" title="GHC.Tc.Types.Evidence">TcCoercion</a>, <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a>, <a href="GHC-Tc-Types-Constraint.html#t:CtFlavour" title="GHC.Tc.Types.Constraint">CtFlavour</a>)) <a href="src/GHC.Tc.Solver.Monad.html#lookupFlatCache" class="link">Source</a> <a href="#v:lookupFlatCache" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:extendFlatCache" class="def">extendFlatCache</a> :: <a href="GHC-Core-TyCon.html#t:TyCon" title="GHC.Core.TyCon">TyCon</a> -&gt; [<a href="GHC-Core-Type.html#t:Type" title="GHC.Core.Type">Type</a>] -&gt; (<a href="GHC-Tc-Types-Evidence.html#t:TcCoercion" title="GHC.Tc.Types.Evidence">TcCoercion</a>, <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a>, <a href="GHC-Tc-Types-Constraint.html#t:CtFlavour" title="GHC.Tc.Types.Constraint">CtFlavour</a>) -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> () <a href="src/GHC.Tc.Solver.Monad.html#extendFlatCache" class="link">Source</a> <a href="#v:extendFlatCache" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:newFlattenSkolem" class="def">newFlattenSkolem</a> :: <a href="GHC-Tc-Types-Constraint.html#t:CtFlavour" title="GHC.Tc.Types.Constraint">CtFlavour</a> -&gt; <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a> -&gt; <a href="GHC-Core-TyCon.html#t:TyCon" title="GHC.Core.TyCon">TyCon</a> -&gt; [<a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a>] -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> (<a href="GHC-Tc-Types-Constraint.html#t:CtEvidence" title="GHC.Tc.Types.Constraint">CtEvidence</a>, <a href="GHC-Core-Coercion.html#t:Coercion" title="GHC.Core.Coercion">Coercion</a>, <a href="GHC-Types-Var.html#t:TcTyVar" title="GHC.Types.Var">TcTyVar</a>) <a href="src/GHC.Tc.Solver.Monad.html#newFlattenSkolem" class="link">Source</a> <a href="#v:newFlattenSkolem" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:dischargeFunEq" class="def">dischargeFunEq</a> :: <a href="GHC-Tc-Types-Constraint.html#t:CtEvidence" title="GHC.Tc.Types.Constraint">CtEvidence</a> -&gt; <a href="GHC-Types-Var.html#t:TcTyVar" title="GHC.Types.Var">TcTyVar</a> -&gt; <a href="GHC-Tc-Types-Evidence.html#t:TcCoercion" title="GHC.Tc.Types.Evidence">TcCoercion</a> -&gt; <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> () <a href="src/GHC.Tc.Solver.Monad.html#dischargeFunEq" class="link">Source</a> <a href="#v:dischargeFunEq" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:pprKicked" class="def">pprKicked</a> :: <a href="GHC-Prelude.html#t:Int" title="GHC.Prelude">Int</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Tc.Solver.Monad.html#pprKicked" class="link">Source</a> <a href="#v:pprKicked" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:updInertFunEqs" class="def">updInertFunEqs</a> :: (FunEqMap <a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a> -&gt; FunEqMap <a href="GHC-Tc-Types-Constraint.html#t:Ct" title="GHC.Tc.Types.Constraint">Ct</a>) -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> () <a href="src/GHC.Tc.Solver.Monad.html#updInertFunEqs" class="link">Source</a> <a href="#v:updInertFunEqs" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:findFunEq" class="def">findFunEq</a> :: FunEqMap a -&gt; <a href="GHC-Core-TyCon.html#t:TyCon" title="GHC.Core.TyCon">TyCon</a> -&gt; [<a href="GHC-Core-Type.html#t:Type" title="GHC.Core.Type">Type</a>] -&gt; <a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> a <a href="src/GHC.Tc.Solver.Monad.html#findFunEq" class="link">Source</a> <a href="#v:findFunEq" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:findFunEqsByTyCon" class="def">findFunEqsByTyCon</a> :: FunEqMap a -&gt; <a href="GHC-Core-TyCon.html#t:TyCon" title="GHC.Core.TyCon">TyCon</a> -&gt; [a] <a href="src/GHC.Tc.Solver.Monad.html#findFunEqsByTyCon" class="link">Source</a> <a href="#v:findFunEqsByTyCon" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:instDFunType" class="def">instDFunType</a> :: <a href="GHC-Types-Var.html#t:DFunId" title="GHC.Types.Var">DFunId</a> -&gt; [<a href="GHC-Core-InstEnv.html#t:DFunInstType" title="GHC.Core.InstEnv">DFunInstType</a>] -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> ([<a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a>], <a href="GHC-Tc-Utils-TcType.html#t:TcThetaType" title="GHC.Tc.Utils.TcType">TcThetaType</a>) <a href="src/GHC.Tc.Solver.Monad.html#instDFunType" class="link">Source</a> <a href="#v:instDFunType" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:newFlexiTcSTy" class="def">newFlexiTcSTy</a> :: <a href="GHC-Core-Type.html#t:Kind" title="GHC.Core.Type">Kind</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a> <a href="src/GHC.Tc.Solver.Monad.html#newFlexiTcSTy" class="link">Source</a> <a href="#v:newFlexiTcSTy" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:instFlexi" class="def">instFlexi</a> :: [<a href="GHC-Types-Var.html#t:TKVar" title="GHC.Types.Var">TKVar</a>] -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Core-Type.html#t:TCvSubst" title="GHC.Core.Type">TCvSubst</a> <a href="src/GHC.Tc.Solver.Monad.html#instFlexi" class="link">Source</a> <a href="#v:instFlexi" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:instFlexiX" class="def">instFlexiX</a> :: <a href="GHC-Core-Type.html#t:TCvSubst" title="GHC.Core.Type">TCvSubst</a> -&gt; [<a href="GHC-Types-Var.html#t:TKVar" title="GHC.Types.Var">TKVar</a>] -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Core-Type.html#t:TCvSubst" title="GHC.Core.Type">TCvSubst</a> <a href="src/GHC.Tc.Solver.Monad.html#instFlexiX" class="link">Source</a> <a href="#v:instFlexiX" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:cloneMetaTyVar" class="def">cloneMetaTyVar</a> :: <a href="GHC-Types-Var.html#t:TcTyVar" title="GHC.Types.Var">TcTyVar</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Types-Var.html#t:TcTyVar" title="GHC.Types.Var">TcTyVar</a> <a href="src/GHC.Tc.Solver.Monad.html#cloneMetaTyVar" class="link">Source</a> <a href="#v:cloneMetaTyVar" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:demoteUnfilledFmv" class="def">demoteUnfilledFmv</a> :: <a href="GHC-Types-Var.html#t:TcTyVar" title="GHC.Types.Var">TcTyVar</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> () <a href="src/GHC.Tc.Solver.Monad.html#demoteUnfilledFmv" class="link">Source</a> <a href="#v:demoteUnfilledFmv" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:tcInstSkolTyVarsX" class="def">tcInstSkolTyVarsX</a> :: <a href="GHC-Core-Type.html#t:TCvSubst" title="GHC.Core.Type">TCvSubst</a> -&gt; [<a href="GHC-Types-Var.html#t:TyVar" title="GHC.Types.Var">TyVar</a>] -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> (<a href="GHC-Core-Type.html#t:TCvSubst" title="GHC.Core.Type">TCvSubst</a>, [<a href="GHC-Types-Var.html#t:TcTyVar" title="GHC.Types.Var">TcTyVar</a>]) <a href="src/GHC.Tc.Solver.Monad.html#tcInstSkolTyVarsX" class="link">Source</a> <a href="#v:tcInstSkolTyVarsX" class="selflink">#</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:TcLevel" class="def">TcLevel</a> <a href="src/GHC.Tc.Utils.TcType.html#TcLevel" class="link">Source</a> <a href="#t:TcLevel" class="selflink">#</a></p><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:TcLevel">Instances</h4><details id="i:TcLevel" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:TcLevel:Outputable:1"></span> <a href="GHC-Utils-Outputable.html#t:Outputable" title="GHC.Utils.Outputable">Outputable</a> <a href="GHC-Tc-Solver-Monad.html#t:TcLevel" title="GHC.Tc.Solver.Monad">TcLevel</a></span> <a href="src/GHC.Tc.Utils.TcType.html#line-715" class="link">Source</a> <a href="#t:TcLevel" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:TcLevel:Outputable:1"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Tc-Utils-TcType.html">GHC.Tc.Utils.TcType</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ppr">ppr</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcLevel" title="GHC.Tc.Solver.Monad">TcLevel</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#ppr" class="link">Source</a> <a href="#v:ppr" class="selflink">#</a></p><p class="src"><a href="#v:pprPrec">pprPrec</a> :: <a href="GHC-Prelude.html#t:Rational" title="GHC.Prelude">Rational</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcLevel" title="GHC.Tc.Solver.Monad">TcLevel</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Utils.Outputable.html#pprPrec" class="link">Source</a> <a href="#v:pprPrec" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:TcLevel:Eq:2"></span> <a href="GHC-Prelude.html#t:Eq" title="GHC.Prelude">Eq</a> <a href="GHC-Tc-Solver-Monad.html#t:TcLevel" title="GHC.Tc.Solver.Monad">TcLevel</a></span> <a href="src/GHC.Tc.Utils.TcType.html#line-579" class="link">Source</a> <a href="#t:TcLevel" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:TcLevel:Eq:2"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Tc-Utils-TcType.html">GHC.Tc.Utils.TcType</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-61--61-">(==)</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcLevel" title="GHC.Tc.Solver.Monad">TcLevel</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcLevel" title="GHC.Tc.Solver.Monad">TcLevel</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-61--61-" class="selflink">#</a></p><p class="src"><a href="#v:-47--61-">(/=)</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcLevel" title="GHC.Tc.Solver.Monad">TcLevel</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcLevel" title="GHC.Tc.Solver.Monad">TcLevel</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-47--61-" class="selflink">#</a></p></div></details></td></tr><tr><td class="src clearfix"><span class="inst-left"><span class="instance details-toggle-control details-toggle" data-details-id="i:id:TcLevel:Ord:3"></span> <a href="GHC-Prelude.html#t:Ord" title="GHC.Prelude">Ord</a> <a href="GHC-Tc-Solver-Monad.html#t:TcLevel" title="GHC.Tc.Solver.Monad">TcLevel</a></span> <a href="src/GHC.Tc.Utils.TcType.html#line-579" class="link">Source</a> <a href="#t:TcLevel" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><details id="i:id:TcLevel:Ord:3"><summary class="hide-when-js-enabled">Instance details</summary><p>Defined in <a href="GHC-Tc-Utils-TcType.html">GHC.Tc.Utils.TcType</a></p> <div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:compare">compare</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcLevel" title="GHC.Tc.Solver.Monad">TcLevel</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcLevel" title="GHC.Tc.Solver.Monad">TcLevel</a> -&gt; <a href="GHC-Prelude.html#t:Ordering" title="GHC.Prelude">Ordering</a> <a href="#v:compare" class="selflink">#</a></p><p class="src"><a href="#v:-60-">(&lt;)</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcLevel" title="GHC.Tc.Solver.Monad">TcLevel</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcLevel" title="GHC.Tc.Solver.Monad">TcLevel</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-60-" class="selflink">#</a></p><p class="src"><a href="#v:-60--61-">(&lt;=)</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcLevel" title="GHC.Tc.Solver.Monad">TcLevel</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcLevel" title="GHC.Tc.Solver.Monad">TcLevel</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-60--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62-">(&gt;)</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcLevel" title="GHC.Tc.Solver.Monad">TcLevel</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcLevel" title="GHC.Tc.Solver.Monad">TcLevel</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-62-" class="selflink">#</a></p><p class="src"><a href="#v:-62--61-">(&gt;=)</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcLevel" title="GHC.Tc.Solver.Monad">TcLevel</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcLevel" title="GHC.Tc.Solver.Monad">TcLevel</a> -&gt; <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="#v:-62--61-" class="selflink">#</a></p><p class="src"><a href="#v:max">max</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcLevel" title="GHC.Tc.Solver.Monad">TcLevel</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcLevel" title="GHC.Tc.Solver.Monad">TcLevel</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcLevel" title="GHC.Tc.Solver.Monad">TcLevel</a> <a href="#v:max" class="selflink">#</a></p><p class="src"><a href="#v:min">min</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcLevel" title="GHC.Tc.Solver.Monad">TcLevel</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcLevel" title="GHC.Tc.Solver.Monad">TcLevel</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcLevel" title="GHC.Tc.Solver.Monad">TcLevel</a> <a href="#v:min" class="selflink">#</a></p></div></details></td></tr></table></details></div></div><div class="top"><p class="src"><a id="v:isFilledMetaTyVar_maybe" class="def">isFilledMetaTyVar_maybe</a> :: <a href="GHC-Types-Var.html#t:TcTyVar" title="GHC.Types.Var">TcTyVar</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> (<a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> <a href="GHC-Core-Type.html#t:Type" title="GHC.Core.Type">Type</a>) <a href="src/GHC.Tc.Solver.Monad.html#isFilledMetaTyVar_maybe" class="link">Source</a> <a href="#v:isFilledMetaTyVar_maybe" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:isFilledMetaTyVar" class="def">isFilledMetaTyVar</a> :: <a href="GHC-Types-Var.html#t:TcTyVar" title="GHC.Types.Var">TcTyVar</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a> <a href="src/GHC.Tc.Solver.Monad.html#isFilledMetaTyVar" class="link">Source</a> <a href="#v:isFilledMetaTyVar" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:zonkTyCoVarsAndFV" class="def">zonkTyCoVarsAndFV</a> :: <a href="GHC-Tc-Utils-TcType.html#t:TcTyCoVarSet" title="GHC.Tc.Utils.TcType">TcTyCoVarSet</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Utils-TcType.html#t:TcTyCoVarSet" title="GHC.Tc.Utils.TcType">TcTyCoVarSet</a> <a href="src/GHC.Tc.Solver.Monad.html#zonkTyCoVarsAndFV" class="link">Source</a> <a href="#v:zonkTyCoVarsAndFV" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:zonkTcType" class="def">zonkTcType</a> :: <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a> <a href="src/GHC.Tc.Solver.Monad.html#zonkTcType" class="link">Source</a> <a href="#v:zonkTcType" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:zonkTcTypes" class="def">zonkTcTypes</a> :: [<a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a>] -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> [<a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a>] <a href="src/GHC.Tc.Solver.Monad.html#zonkTcTypes" class="link">Source</a> <a href="#v:zonkTcTypes" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:zonkTcTyVar" class="def">zonkTcTyVar</a> :: <a href="GHC-Types-Var.html#t:TcTyVar" title="GHC.Types.Var">TcTyVar</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a> <a href="src/GHC.Tc.Solver.Monad.html#zonkTcTyVar" class="link">Source</a> <a href="#v:zonkTcTyVar" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:zonkCo" class="def">zonkCo</a> :: <a href="GHC-Core-Coercion.html#t:Coercion" title="GHC.Core.Coercion">Coercion</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Core-Coercion.html#t:Coercion" title="GHC.Core.Coercion">Coercion</a> <a href="src/GHC.Tc.Solver.Monad.html#zonkCo" class="link">Source</a> <a href="#v:zonkCo" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:zonkTyCoVarsAndFVList" class="def">zonkTyCoVarsAndFVList</a> :: [<a href="GHC-Tc-Utils-TcType.html#t:TcTyCoVar" title="GHC.Tc.Utils.TcType">TcTyCoVar</a>] -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> [<a href="GHC-Tc-Utils-TcType.html#t:TcTyCoVar" title="GHC.Tc.Utils.TcType">TcTyCoVar</a>] <a href="src/GHC.Tc.Solver.Monad.html#zonkTyCoVarsAndFVList" class="link">Source</a> <a href="#v:zonkTyCoVarsAndFVList" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:zonkSimples" class="def">zonkSimples</a> :: <a href="GHC-Tc-Types-Constraint.html#t:Cts" title="GHC.Tc.Types.Constraint">Cts</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Types-Constraint.html#t:Cts" title="GHC.Tc.Types.Constraint">Cts</a> <a href="src/GHC.Tc.Solver.Monad.html#zonkSimples" class="link">Source</a> <a href="#v:zonkSimples" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:zonkWC" class="def">zonkWC</a> :: <a href="GHC-Tc-Types-Constraint.html#t:WantedConstraints" title="GHC.Tc.Types.Constraint">WantedConstraints</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Types-Constraint.html#t:WantedConstraints" title="GHC.Tc.Types.Constraint">WantedConstraints</a> <a href="src/GHC.Tc.Solver.Monad.html#zonkWC" class="link">Source</a> <a href="#v:zonkWC" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:zonkTyCoVarKind" class="def">zonkTyCoVarKind</a> :: <a href="GHC-Tc-Utils-TcType.html#t:TcTyCoVar" title="GHC.Tc.Utils.TcType">TcTyCoVar</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Tc-Utils-TcType.html#t:TcTyCoVar" title="GHC.Tc.Utils.TcType">TcTyCoVar</a> <a href="src/GHC.Tc.Solver.Monad.html#zonkTyCoVarKind" class="link">Source</a> <a href="#v:zonkTyCoVarKind" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:newTcRef" class="def">newTcRef</a> :: a -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> (<a href="GHC-Tc-Types.html#t:TcRef" title="GHC.Tc.Types">TcRef</a> a) <a href="src/GHC.Tc.Solver.Monad.html#newTcRef" class="link">Source</a> <a href="#v:newTcRef" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:readTcRef" class="def">readTcRef</a> :: <a href="GHC-Tc-Types.html#t:TcRef" title="GHC.Tc.Types">TcRef</a> a -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> a <a href="src/GHC.Tc.Solver.Monad.html#readTcRef" class="link">Source</a> <a href="#v:readTcRef" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:writeTcRef" class="def">writeTcRef</a> :: <a href="GHC-Tc-Types.html#t:TcRef" title="GHC.Tc.Types">TcRef</a> a -&gt; a -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> () <a href="src/GHC.Tc.Solver.Monad.html#writeTcRef" class="link">Source</a> <a href="#v:writeTcRef" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:updTcRef" class="def">updTcRef</a> :: <a href="GHC-Tc-Types.html#t:TcRef" title="GHC.Tc.Types">TcRef</a> a -&gt; (a -&gt; a) -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> () <a href="src/GHC.Tc.Solver.Monad.html#updTcRef" class="link">Source</a> <a href="#v:updTcRef" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getDefaultInfo" class="def">getDefaultInfo</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> ([<a href="GHC-Core-Type.html#t:Type" title="GHC.Core.Type">Type</a>], (<a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a>, <a href="GHC-Prelude.html#t:Bool" title="GHC.Prelude">Bool</a>)) <a href="src/GHC.Tc.Solver.Monad.html#getDefaultInfo" class="link">Source</a> <a href="#v:getDefaultInfo" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getDynFlags" class="def">getDynFlags</a> :: <a href="GHC-Driver-Session.html#t:HasDynFlags" title="GHC.Driver.Session">HasDynFlags</a> m =&gt; m <a href="GHC-Driver-Session.html#t:DynFlags" title="GHC.Driver.Session">DynFlags</a> <a href="src/GHC.Driver.Session.html#getDynFlags" class="link">Source</a> <a href="#v:getDynFlags" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:getGlobalRdrEnvTcS" class="def">getGlobalRdrEnvTcS</a> :: <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> <a href="GHC-Types-Name-Reader.html#t:GlobalRdrEnv" title="GHC.Types.Name.Reader">GlobalRdrEnv</a> <a href="src/GHC.Tc.Solver.Monad.html#getGlobalRdrEnvTcS" class="link">Source</a> <a href="#v:getGlobalRdrEnvTcS" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:matchFam" class="def">matchFam</a> :: <a href="GHC-Core-TyCon.html#t:TyCon" title="GHC.Core.TyCon">TyCon</a> -&gt; [<a href="GHC-Core-Type.html#t:Type" title="GHC.Core.Type">Type</a>] -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> (<a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (<a href="GHC-Core-Coercion.html#t:CoercionN" title="GHC.Core.Coercion">CoercionN</a>, <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a>)) <a href="src/GHC.Tc.Solver.Monad.html#matchFam" class="link">Source</a> <a href="#v:matchFam" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:matchFamTcM" class="def">matchFamTcM</a> :: <a href="GHC-Core-TyCon.html#t:TyCon" title="GHC.Core.TyCon">TyCon</a> -&gt; [<a href="GHC-Core-Type.html#t:Type" title="GHC.Core.Type">Type</a>] -&gt; <a href="GHC-Tc-Types.html#t:TcM" title="GHC.Tc.Types">TcM</a> (<a href="GHC-Prelude.html#t:Maybe" title="GHC.Prelude">Maybe</a> (<a href="GHC-Core-Coercion.html#t:CoercionN" title="GHC.Core.Coercion">CoercionN</a>, <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a>)) <a href="src/GHC.Tc.Solver.Monad.html#matchFamTcM" class="link">Source</a> <a href="#v:matchFamTcM" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:checkWellStagedDFun" class="def">checkWellStagedDFun</a> :: <a href="GHC-Tc-Types-Constraint.html#t:CtLoc" title="GHC.Tc.Types.Constraint">CtLoc</a> -&gt; <a href="GHC-Tc-Instance-Class.html#t:InstanceWhat" title="GHC.Tc.Instance.Class">InstanceWhat</a> -&gt; <a href="GHC-Core-Type.html#t:PredType" title="GHC.Core.Type">PredType</a> -&gt; <a href="GHC-Tc-Solver-Monad.html#t:TcS" title="GHC.Tc.Solver.Monad">TcS</a> () <a href="src/GHC.Tc.Solver.Monad.html#checkWellStagedDFun" class="link">Source</a> <a href="#v:checkWellStagedDFun" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:pprEq" class="def">pprEq</a> :: <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a> -&gt; <a href="GHC-Tc-Utils-TcType.html#t:TcType" title="GHC.Tc.Utils.TcType">TcType</a> -&gt; <a href="GHC-Utils-Outputable.html#t:SDoc" title="GHC.Utils.Outputable">SDoc</a> <a href="src/GHC.Tc.Solver.Monad.html#pprEq" class="link">Source</a> <a href="#v:pprEq" class="selflink">#</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.25.1</p></div></body></html>